Преимущества SPATIAL по сравнению со стандартным ограничивающим запросом - PullRequest
1 голос
/ 28 марта 2011

Преимущества SPATIAL по сравнению с BOUNDING

Каковы преимущества использования SPATIAL-запроса, а не простого запроса MySQL, использующего ограничивающий прямоугольник?

Например, если я хочу найти всеместоположения, попадающие в определенный полигон:

Примерно так:

Пример ограничительной рамки

SELECT * FROM geoplaces 
WHERE geolat BETWEEN ? AND ?
AND geolng BETWEEN ? AND ?

Как я понимаю, единственное реальное преимущество заключается в том, что пространственное значение также будетв искривлении Земли?

Какой метод также самый быстрый?

1 Ответ

4 голосов
/ 28 марта 2011

Преимущества:

  1. Вы можете использовать формы, отличные от точек и прямоугольники, и операции другие чем "это в".
  2. Если вы можете использовать SPATIAL индексы, показатели выполнения заказов величина лучше (в зависимости от Конечно, по размеру и характеру ваши данные).

Недостатки:

  1. Пространственные объекты - это двоичные двоичные объекты - для их обработки требуется некоторая осторожность (например, вы не можете скопировать или вставить значение).
  2. Пространственные индексы в mySQL доступны только для таблиц MyISAM.
  3. Поддержка в MySQL несколько примитивна; многие операции еще не реализованы

Если ваша база данных велика, и вам нужен быстрый поиск, подобный тому, который показан в вашем примере, вы должны обязательно использовать SPATIAL индексы.

...