MySQL написание эффективных процедур для геометрических запросов - PullRequest
0 голосов
/ 13 февраля 2020

Это вопрос эффективности, потому что то, что я хочу написать, может сломать мою машину.

Краткое описание. У меня есть два набора данных,

Set1 содержит ~ 2500 записей, с каждой записью связан полигон.

Set2 содержит ~ 4000 записей, каждая запись имеет связанную точку.

Я хочу выяснить, какие полигоны из набора set1 содержат какие точки из набора set2. Все точки и полигоны уникальны и не перекрываются.

Я собирался написать процедуру, используя вложенный курсор, который будет смотреть на точку в set2, прокручивать все set1 и находить многоугольник, который окружает точку.

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

1 Ответ

0 голосов
/ 18 февраля 2020

MySQL для геометрии - отлично .

  1. Не похоже, что это длительный процесс.
  2. Вы можете иметь или не иметь вложенный курсор.
  3. Вы можете довольно хорошо создать связанный вид , имеющий каждую точку из set2 вместе с всех пойгонов, охватывающих точку.
  4. И это представление может быть вызвано из вашего кода для списка выбора и т. Д. c (заменив ожидаемый курсор). Как только представление определено, MySQL будет почти готов с выводом всегда.
...