B-tree индекс
Тип индекса по умолчанию в PostgreSQL. Подходит для операций =, <, >, BETWEEN, LIKE 'prefix%'.
CREATE INDEX ON table USING btree (column); -- btree по умолчанию
Объяснение
Пример
-- B-tree хорош для: CREATE INDEX ON orders (created_at); -- диапазон дат CREATE INDEX ON users (email); -- точное совпадение -- GIN для массивов: CREATE INDEX ON articles USING gin (tags);
Связанные термины
Анекдоты по теме
— Что такое pg_trgm? — Расширение для поиска по подстроке с индексом. — Как? — CREATE EXTENSION pg_trgm; CREATE INDEX ON articles USING GIN (title gin_trgm_ops); SELECT * FROM articles WHERE title ILIKE '%postgres%'; — Теперь LIKE '%...%' использует индекс! — Это меняет всё для поиска.
— Зачем нужен EXPLAIN (BUFFERS)? — Показывает, сколько данных прочитано из кэша и с диска. — Зачем это знать? — Если всё из кэша — ок. Если много с диска — нужно больше shared_buffers или индексы.
— Что такое партиционирование? — Разбить одну большую таблицу на несколько меньших по какому-то признаку. — Например? — По дате: orders_2023, orders_2024. Запрос за 2024 год читает только одну партицию. — Это же просто несколько таблиц! — Но с прозрачным доступом через одно имя.