У нас есть большая база данных местоположения - для каждой строки указывается lat long.БД размещается в MySQL.
Нам нужно выполнить два типа запросов:
- места поблизости (сортировка по расстоянию)
- места поблизости по категории (гдекатегория - это столбец)
По мере роста количества записей этот запрос резко замедляется.
SELECT *, ( 3959 * acos( cos( radians(40.759105) ) * cos( radians( Latitude ) ) * cos( radians( longitude) - radians(-73.984654) ) + sin( radians(40.759105) ) * sin( radians( Latitude ) ) ) ) as distance FROM mcw_in WHERE Latitude <> '' ORDER BY distance LIMIT 0,20
Как создать индекс в MySQL для устранения медлительности?Есть ли какое-либо другое решение, например, использование любых типов геопространственных данных?