~/VibeHandbook

Глава 09 · 05

Индексирование

Индекс — это как предметный указатель в конце книги: он позволяет базе данных сразу перейти к совпадающим строкам вместо сканирования каждой. Без индексов запросы становятся медленнее по мере роста данных — нормально на 100 строках, мучительно на 1 000 000.

Практическое руководство:

  • Индексируйте столбцы, по которым вы часто фильтруете или соединяете (например, author_id, email).
  • Первичные ключи индексируются автоматически.
  • Не индексируйте всё подряд — каждый индекс ускоряет чтение, но замедляет запись и занимает место.
  • Добавляйте индексы, когда видите медленный запрос, а не превентивно для каждого столбца.

Честный способ выяснить, помогает ли индекс, — спросить базу данных, а не гадать. У каждого SQL-движка есть EXPLAIN (в Postgres — EXPLAIN ANALYZE), который показывает план, который он применит:

EXPLAIN ANALYZE
SELECT * FROM posts WHERE author_id = '...';

Если на большой таблице вывод говорит Seq Scan, база данных читает каждую строку — признак того, что индекс помог бы. После его добавления он должен переключиться на Index Scan. Это отличная задача, чтобы передать AI: вставьте медленный запрос и вывод EXPLAIN и спросите, какой индекс добавить и почему. Вы сохраняете контроль, понимая ответ, а не заучивая теорию индексов.

Хотите офлайн-версию?

Получите PDF + EPUB + скачиваемую библиотеку промптов + обновления версий.

$ Получить PDF — $39