Оптимизация ограничительной рамки SQL - PullRequest
2 голосов
/ 17 декабря 2011

Может ли кто-нибудь ссылаться на какие-либо документы, касающиеся оптимизированных запросов стиля ограничивающего прямоугольника в SQL?

На самом базовом уровне представим таблицу, состоящую из столбцов с плавающей запятой x, y, мы запрашиваем у таблицы строки в пределах определенного(x1, x2), (y1, y2) диапазон.Запрос для этого является тривиальным, но каков наилучший способ определить индексы для обеспечения его эффективного поведения?

Мы могли бы просто создать индекс по столбцам x и y, или я мог бы создать индексв столбцах x и y, но я недостаточно знаю об индексации SQL, чтобы обосновать свой путь.

Я использую MySQL.

Ответы [ 2 ]

1 голос
/ 17 декабря 2011

пространственные расширения mysqls

он может использовать r индексы дерева

, тогда у вас есть удобные функции, такие как mbrwithin

кажется прямо в вашем переулке

1 голос
/ 17 декабря 2011

Кривая заполнения пространства лучше всего уменьшить двумерное пространство до 1d проблемы. Он построен как фрактал и представляет собой серый обход кода. Вместо расчета индекса вы можете составить ключ без префикса пути quadtree, подобный коду Хаффмана. Затем вы можете использовать простой строковый запрос для получения поля. MySql имеет расширение пространственного индекса, но я не знаю, какую кривую они используют. Это, вероятно, простая z-кривая или кривая Пеано. Вы можете взглянуть на блог Nick пространственного индекса quadtree кривая Гильберта. Монотонный н-арый серый код также может быть очень интересным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...