La recherche efficace d'emplacements à proximité est cruciale pour des applications telles que la cartographie et la navigation. La formule Haversine est une méthode largement utilisée pour calculer les distances entre deux points d'une sphère. Cette formule peut être implémentée directement dans SQL pour optimiser les requêtes de recherche basées sur la localisation.
Dans votre cas, vous vous inquiétez des performances de calcul des distances pour plus de 5 000 entreprises. Pensez à utiliser la requête MySQL suivante avec la formule Haversine :
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;
Dans cette requête, remplacez "37" et "-122" par la latitude et la longitude de l'emplacement de l'utilisateur. En calculant les distances dans la base de données, vous éliminez le besoin de récupérer toutes les entreprises et d'effectuer des calculs de distance en PHP.
Grâce à cette approche optimisée, vous pouvez améliorer considérablement la vitesse de votre recherche de localisation à proximité, la rendant ainsi adaptée pour gérer de grandes bases de données. Il est important d'indexer les colonnes impliquées dans le calcul de la distance pour des performances optimales.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!