sql >> Databasteknik >  >> RDS >> Mysql

Hur man effektivt hittar de närmaste platserna i närheten av en given plats

Jag tror att det du försöker uppnå kan göras bättre med Haversine-formeln i din SQL. Google har en handledning om hur du får de närmaste platserna i en MySQL-databas men den allmänna idén är denna SQL:

SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) )
  * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) 
  * sin( radians( lat ) ) ) ) AS distance
FROM markers
HAVING distance < 25
ORDER BY distance LIMIT 0 , 20;

Sedan görs allt arbete du behöver göra på databasen, så du behöver inte dra in alla företag i ditt PHP-skript innan du ens har kontrollerat avståndet.



  1. Hur skulle jag få psycopg2-loggning av frågekörningstiden?

  2. Hur man hittar namnet på en begränsning i MySQL

  3. Gruppera DateTime i 5,15,30 och 60 minuters intervall

  4. Bemästra användningen av stopplistor med SQL Server Full-Text Search (FTS)