Некоторые методы сканирования данных, которые используются в PostgreSQL при выполнении запросов:
- Последовательное сканирование (sequential scan). ibs-training.ru telegra.ph Данные извлекаются напрямую из табличных страниц, минуя индексы, согласно критериям отбора. telegra.ph Если запрос не содержит условий WHERE, извлекаются все строки таблицы. telegra.ph Этот метод эффективен при низкой селективности выборки, то есть когда нужно получить большую часть строк или все строки таблицы. telegra.ph
- Индексное сканирование (index scan). ibs-training.ru Используется при большом наборе проиндексированных данных. ibs-training.ru Метод доступа возвращает идентификаторы версий строк по одному за раз. habr.com
- Исключительно индексное сканирование (index only scan). ibs-training.ru Некоторые индексы вместе с идентификаторами строк хранят сами значения. ibs-training.ru Этот метод позволяет читать индекс, не обращаясь к таблицам с данными, и забирать результат прямо из индекса. ibs-training.ru
- Сканирование по битовой карте (bitmap scan). ibs-training.ru Применяется при относительно большой выборке, когда она слишком большая для того, чтобы использовать индексное сканирование, но в то же время не настолько большая, чтобы применять обычное последовательное сканирование каждой строки. ibs-training.ru Преимущество метода в том, что он работает при поиске более чем по одному индексу. ibs-training.ru
- TID Scan. severalnines.com Специальный узел, который читает из таблицы версии строк по известным идентификаторам. habr.com
Выбор метода сканирования зависит от запроса и других параметров, таких как размер таблицы, селективность выборки и другие. severalnines.com