Большинство реляционных баз данных имеют индексы структуры в виде B-деревьев.
Если таблица имеет индекс кластеризации, страницы данных сохраняются как конечные узлы B-дерева.По сути, индекс кластеризации становится таблицей.
Для таблиц без индекса кластеризации страницы данных таблицы хранятся в куче.Любые некластеризованные индексы являются B-деревьями, где листовой узел B-дерева идентифицирует конкретную страницу в куче.
Наихудшая высота B-дерева равна O (log n), и посколькупоиск зависит от высоты, поиск по B-дереву выполняется в среднем примерно
O (log t n)
где t - коэффициент минимизации (каждый узел должен иметь не менее t -1 ключей и не более 2 * t * -1 ключей (например, 2 * t * children).
Этонасколько я понимаю.
И разные системы баз данных, конечно, вполне могут использовать разные структуры данных под капотом.
И если запрос не использует индекс, конечно, тогдапоиск - это итерация по куче или B-дереву, содержащему страницы данных.
Поиск выполняется немного дешевле, если используемый индекс может удовлетворить запрос, в противном случае требуется обходной путь для извлечения соответствующей страницы данных в памяти..