Если в запросе Seq Scan по полю с датой, что это значит? Какой индекс накинуть на дату и почему? (B-tree vs Hash).
Почему PostgreSQL может не использовать индекс и предпочесть Seq Scan?
Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Рейтинг:
2
Сложность:
7
Seq Scan (sequential scan) means что база данных читает всю таблицу для выполнения запроса, что медленно для больших таблиц. Для поля с датой следует создать B-tree индекс, потому что B-tree поддерживает range queries (например, поиск по периоду), while Hash индекс only supports equality checks.
Рейтинг:
5
Сложность:
7
PostgreSQL выбирает план выполнения на основе оценки стоимости, а не наличия индекса. Если планировщик считает, что последовательное сканирование будет дешевле, он выберет Seq Scan. Это часто происходит при выборке большого процента строк. Также причиной могут быть устаревшие статистики или неподходящий тип индекса.