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;
Ich habe eine Abfrage in der Nähe von Benutzerspeicher zu erhalten ..mysql Suchauftrag nach Entfernung ist langsam
diese meine Frage ist .. wenn ich Abfrage ausführen normalerweise ohne (ORDER nach Entfernung) meine Abfrage im 0,0161 Sekunden Aber wenn ich (ORDER by distance) benutze meine Abfrage in 2.8791 Sekunden.
Was soll ich tun, um die beste Laufzeit für meine Abfrage zu erhalten, um eine Reihenfolge nach Entfernung zu erhalten?