Запросы многомерного диапазона с индексами из одного столбца - PullRequest
1 голос
/ 15 июня 2019

Я читаю книгу, которая охватывает многие темы базы данных на очень высоком уровне, но не углубляется глубже. Он вводит многостолбцовые индексы как лучший способ запроса двухмерных диапазонов. Например, этот запрос считается неэффективным, если latitude и longitude каждый имеют индексы из одного столбца:

SELECT * FROM restaurants WHERE latitude > 51.4946 AND latitude < 51.5079 AND longitude > -0.1162 AND longitude < -0.1004;

Лучше было бы использовать многоколонный индекс, используя R-trees, охватывающий как latitude, так и longitude.

Я не понимаю, почему сначала извлечение информации latitude > 51.4946 с использованием одного индекса столбца, а затем извлечение информации longitude > -0.1162 AND longitude < -0.1004 с использованием другого индекса одного столбца неэффективно? Можете ли вы использовать только 1 индекс на таблицу при выполнении запроса или есть какая-то другая причина неэффективности?

...