PostgreSql не использует индекс? Это норма!

10 подписчиков

12+
12+

5 просмотров

месяц назад

ПожаловатьсяНарушение авторских прав

10 подписчиков

12+
12+

5 просмотров

месяц назад

ПожаловатьсяНарушение авторских прав
12+
12+

5 просмотров

месяц назад

Мой телеграм канал, подписывайся https://t.me/ask_for_oleg Создали индекс, запускаете запрос — а PostgreSQL всё равно выбирает Seq Scan? Это не обязательно ошибка. Индекс — не команда для базы данных и не гарантия ускорения запроса. Для планировщика это всего лишь один из способов получить данные. Он сравнивает доступные планы и выбирает тот, который, по его оценке, обойдётся дешевле. В этом видео разбираю: — как PostgreSQL выбирает план выполнения запроса;— почему последовательное чтение таблицы иногда быстрее индекса;— как работают Seq Scan, Index Scan, Bitmap Scan и Index Only Scan;— почему обычный Index Scan всё равно обращается к heap;— как селективность и распределение значений влияют на выбор плана;— откуда планировщик узнаёт предполагаемое количество строк;— как устаревшая статистика приводит к неправильным оценкам;— когда нужна расширенная статистика;— как порядок колонок влияет на составные индексы;— почему Index Only Scan не всегда обходится без чтения таблицы;— как диагностировать проблему через EXPLAIN ANALYZE и BUFFERS. Таймкоды: 00:00 Почему PostgreSQL не использует индекс 01:08 Как PostgreSQL строит план выполнения запроса 02:08 Почему планировщик выбирает не индекс, а самый дешёвый путь 02:44 Heap, tuple, page, TID и key — основные термины 04:52 Четыре основных способа доступа к данным 05:33 Когда Seq Scan — это нормально 06:39 Аналогия с книгой: почему иногда проще прочитать таблицу целиком 07:40 Как работает Index Scan и почему он может быть дорогим 08:49 Как селективность и распределение данных влияют на индекс 09:23 Откуда планировщик знает количество строк 10:08 Ошибки оценки и статистика PostgreSQL 10:59 Расширенная статистика и зависимости между колонками 11:45 Bitmap Scan — компромисс между Index Scan и Seq Scan 13:02 Как PostgreSQL комбинирует несколько индексов 13:22 Как работает Index Only Scan 14:16 Почему Index Only Scan всё равно может читать таблицу 14:36 Как индекс помогает избежать сортировки 15:17 Порядок колонок в составном индексе 15:59 Важен ли порядок условий в WHERE 16:37 Диагностика через EXPLAIN ANALYZE и BUFFERS 17:01 Чек-лист диагностики неработающего индекса 17:44 Итоги

Название:

PostgreSql не использует индекс? Это норма!

Категория:

Разное