Владимир Ситников — B-tree индексы в базах данных на примере PostgreSQL

preview_player
Показать описание
Ближайшая конференция — Heisenbug 2024 Autumn, 10 октября (Online), 17—18 октября (Санкт-Петербург + трансляция).
— Ближайшая конференция: Heisenbug 2023 Autumn — 10–11 октября (online), 15–16 октября (offline)
— —
Доклад о том, как работают обычные™ индексы в базах данных. Будет крайне полезно как тем, кто начинает работать с базами данных, так и тем, кто работал, но подзабыл. У вас в проекте наверняка есть база данных. Наверняка изредка запросы тормозят, и довольно часто это случается либо из-за нехватки, либо из-за переизбытка индексов. На докладе мы научимся измерять производительность запросов, узнаем про то, как работают индексы, и научимся правильно их применять. Примеры будут на PostgreSQL, но знания подойдут и ко многим другим базам, ведь алгоритм b-tree изобрели в 1970 году, и его вариации используются сейчас очень часто.

Рассмотрим:
— Как индекс ускоряет поиск;
— Нужно ли индексировать условия where;
— Нужно ли индексировать условия в order by;
— Нужно ли индексировать foreign keys;
— Что делать, если критериев поиска несколько;
— В каком порядке указывать колонки в индексе;
— Случаи, когда индекс замедляет работу, и как снизить влияние индекса на приложение.

#database #postgresql
Рекомендации по теме
Комментарии
Автор

Вот это да. 10 лет программирую, столько текстов прочитал о всякой-всячине, но конкретику нашел именно тут. Спасибо за видео

uftcvgr
Автор

Очень полезный доклад. Побольше бы такого. Достаточно прикладные вещи, но мало где это подробно описано

gregoryrubies
Автор

Благодарю вас за такой прекрасный материал, чистое наслаждение слушать :) Если вы будете выкладывать информацию о докладчике под видео и прикладывать ссылки на его соц сети любить вас будут гораздо больше :)

iglpbfo
Автор

Владимир, спасибо огромное за доклад!

cnwudbw
Автор

Отличный доклад, большое спасибо автору 🙂

bztzmfr
Автор

Материал, презентация, доклад, все на высшем уровне, спасибо Владимиру за работу

adilkhanzaidulla
Автор

Шикарный доклад, посмотрел с удовольствием, хотя знал это всё)

romanlunin
Автор

Я только начинаю в PostgreSQL, мало что понял, но было интересно

RaptorTV
Автор

Хорошее объяснение. Буду шарить всем неверующим, что юид не самый лучший вариант для айдишки )))

coox
Автор

Очень интересный доклад, больше года к сожалению приходится работать только с nosql elasticsearch и там структура данных при индексирование не b-tree а inverted index (array) что оптимизировано для поиска по тексту, кайфанул от просмотра, очень детально.

MrVitalirapalis
Автор

последний вопрос явно был вопрос ради вопроса, что общего между дропом БД и индексами, да и вообще с постгресом?

wickedtorpedo
Автор

Насколько мне известно, при покрытии индекса (когда данные в таблице отсортированы) механизм индексирования не в таблицу заглядывает для определения видимости строк, а в так называемую карту видимости, в которой vacuum отмечает строки которые не менялись очень долгое время, и доступны всем транзакциям. И если идентификатор строки попадает в эту карту то видимость можно не проверять. Поправьте если не прав.

mcolegon
Автор

В последнем примере про поиск по статусу и имени почему просто не создать частичный индекс куда войдут только строчки с PENDING если мы ищем только по таким строчкам?

aleona
Автор

не понял про индекс по статусу и имени, не понял почему выгодно делать индекс статус-имя, ведь у статуса всего три значения и селективность у него будет явно хреновая, а вот у имени, особенно если именем будет какой-то никнейм, ну или даже имя человека, то там будет огромное количество разных значений у колонки и селективность будет явно больше, чем у статуса

sergeypoprygin
Автор

правильно ли я понял, что случайные uuid как индекс бесполезны и поск все равно будет перебором?

kvintnorris
Автор

Отсортированный по времени UUID еще называют Ulid.

ivanmatew
Автор

Упал на последней минуте от вопроса "например вот как-бы вот это самое".

Ieatsomebrains
Автор

Такая нуднятина, столько воды, жесть!

johnnester
Автор

Очень корявая речь, как-будто к выступлению докладчик не готовился совсем. Местами утверждения некорректные из-за этого

firwvxb
Автор

Спасибо, отличный доклад. Штук 5 видео про индексы я посмотрела на ютубе, и только в этом услышала то, что помогло мне осознать суть происходящего.

fuvjvhp