Растровый индекс против сложности времени b-дерева - PullRequest
0 голосов
/ 05 мая 2019

Являются ли запросы в полях с индексированными растровыми изображениями с низкими значениями быстрее по сравнению с индексами b-дерева?

Распространенная идея о том, что индексы растровых изображений обеспечивают лучшую производительность запросов для полей с низкими различимыми значениями по сравнению с индексами b-дерева. Но так ли это?

Например, SELECT * FROM some_table WHERE color = 'RED'. Здесь поле color имеет низкие отдельные значения и может быть проиндексировано с помощью b-дерева или растрового индекса:

  • если color использует индекс b-tree , то для выполнения вышеуказанного запроса база данных должна выполнить бинарный поиск + обход в порядке (из бинарного результата поиска в обоих направлениях), который дает us O (log N + K) ~ O (log N) временная сложность, где K - количество строк результата. K <= N. </li>
  • если color использует индекс bitmap , тогда база данных выполняет полное сканирование, что дает O (N) сложность времени.

Так что, с моей точки зрения, индекс растровых изображений еще хуже. Я прав?

...