Некоторые преимущества использования B-tree индексов в PostgreSQL:
- Ускорение поиска. 23 Данные в индексе хранятся в форме, которая позволяет в процессе поиска не рассматривать области, которые заведомо не могут содержать искомые элементы. 2
- Ускорение сортировки. 23 Индекс на основе B-дерева ускоряет сортировку результатов, если в ORDER BY указано проиндексированное поле. 2
- Возможность ускорения запросов, использующих не все поля индекса, а какую-то их часть. 3 Например, B-tree индекс может ускорить выполнение LIKE при отборе, которые начинаются с определённой подстроки. 3
- Оптимальное хранение во внешней памяти. 3 Каждый узел удерживает такой объём информации, который может быть записан на диск и прочитан в рамках одной операции ввода-вывода. 3
Некоторые недостатки использования B-tree индексов в PostgreSQL:
- Затраты на обслуживание. 3 При проведении операций с данными индексы должны обновляться в рамках той же транзакции. 3
- Замедление при изменении данных. 5 Оно возникает из-за того, что в синхронном режиме происходит обновление не только самой таблицы, но и индексного файла. 5
- Ограничение по размеру записи. 4 Размер записи в индексе не может превышать примерно треть страницы (после сжатия TOAST, если оно применяется). 4