set @dist = 100;
set @rlng1 = [email protected]/abs(cos(radians(31.34747060000000))*69);
set @rlng2 = [email protected]/abs(cos(radians(31.34747060000000))*69);
set @rlat1 = 31.34747060000000-(@dist/69);
set @rlat2 = 31.34747060000000+(@dist/69);
SELECT name,storeId, ST_DISTANCE(POINT(48.67607474000000,31.34747060000000),
POINT(lng, lat)) AS distance
FROM store
WHERE ST_WITHIN(POINT(48.67607474000000,31.34747060000000),
ENVELOPE(LINESTRING(point(@rlng1, @rlat1),
point(@rlng2, @rlat2))))
ORDER by distance
LIMIT 10 OFFSET 0;
У меня есть запрос, чтобы получить рядом с пользователем магазина ..MySQL порядок поиска по расстоянию медленно
это мой запрос .. когда я запускаю запрос обычно без (ORDER по расстоянию) мой пробег запрос в 0.0161 секунды. Но когда я использую (ORDER by distance), мой запрос выполняется в 2.8791 секунде.
Что мне делать, чтобы получить лучшее время выполнения по моему запросу, имеют порядок на расстоянии?