Я пытаюсь найти эффективный способ выполнять запросы о близости, то есть возвращать ТОЧКИ, которые находятся в радиусе от центральной ТОЧКИ.
Я понимаю, что метод PostGIS ST_DWithin являетсяхороший способ сделать это в PostgreSQL и что он использует INDEX .
В настоящее время я использую ST_Distance_Sphere (g1, g2 [, radius]) , который возвращает минимальное сферическое расстояние между точкой на сфере в метрах.
SELECT placeNames FROM myPlaces
WHERE ST_Distance_Sphere(placeLocation, POINT(28.861105, 77.337)) < 10000
Я использую предложение WHERE
для фильтрации строк.Использует ли запрос индекс?Если нет, то есть ли лучший подход для реализации того же.
Я использую MySQL 5.7.26 и 8.0.16, оба работают под управлением ядра базы данных InnoDB по умолчанию.