sql >> Databasteknik >  >> RDS >> Mysql

hur man optimerar en geolokaliseringsdatabas i mysql för euklidisk avståndssökning/fråga

Du kommer att ha svårt att optimera för den typen av frågor. Ett bättre alternativ skulle vara att beräkna en begränsningsruta från (x,y) koordinater och delta skickas in. Fråga sedan efter alla platser där koordinaterna hamnar i den rutan. Den frågan skulle vara mycket enklare och skulle kunna använda alla index du kan ha på x- och y-fälten.

Naturligtvis är resultaten från den frågan inte lika exakta eftersom det är en begränsningsram snarare än en cirkel. Om du vill ha bättre resultat kan du ta resultaten från begränsningsrutan och sedan använda den långsammare euklidiska metoden för att filtrera bort de som inte hamnar i cirkeln.



  1. Att ställa in värdet för en kolumn av alla rader är mycket långsamt

  2. MySQL Great Circle Distance (Haversine-formel)

  3. Läser tecken som č ć đ š ž från MySql-databasen

  4. SQL DROP-index, DROP-tabell och DROP-databassatser förklaras med exempel