Как лучше хранить геомаршруты в MySQL для поиска в них?

Есть множество (несколько сотен тысяч) gps-маршрутов в файлах в gpx-формате. Нужно перегнать их в sql-хранилище с возможность поиска. Т.е. задан некий квадрат и нужно найти - какие маршруты проходят через этот квадрат.
Как пример - ищем по квадрату N-45 (координаты углов заранее известны), на выходе список id маршрутов.
Нужно использовать mySQL. Другие варианты не рассматриваются.

Я пока надумал два варианта:
1. 3 поля - lat (float), lon (float), routeId (int). Индексы на lat и lon. C помощью математического сравнения нахожу distinct routeid в заданном boundbox. Т.е. в таблице столько записей, сколько точек во всех маршрутах.
2. 2 поля - route (multistring), routeId (int). В таблице записей столько, сколько есть маршрутов. В каждой записи - все точки маршрута.

Какой вариант менее ресурсоемкий и наиболее быстрый?
Может быть есть более правильные варианты?

UPD - любители postgresql - ну пройдите же мимо, ясно написано, что только MySQL, даже тег соответствующий.
  • Вопрос задан
  • 1169 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Fixid
Правильно будет хранить в postgresql с расширением postgis. Все операции можно выполнить буквально одним select с высокой скоростью
Ответ написан
vvovas
@vvovas
Вот неплохой док: https://www.scribd.com/presentation/2569355/Geo-Di...
Советуют сфинкс подключить.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы