Maison > base de données > tutoriel mysql > le corps du texte

Comment la formule Haversine peut-elle optimiser la recherche d'emplacements à proximité dans une base de données ?

Patricia Arquette
Libérer: 2024-11-07 19:53:03
original
965 Les gens l'ont consulté

How Can the Haversine Formula Optimize Finding Nearby Locations in a Database?

Utilisation de la formule Haversine pour rechercher des emplacements à proximité

Lorsque vous traitez un grand volume d'emplacements commerciaux stockés dans une base de données, l'efficacité de la recherche les plus proches d’un point donné devient crucial. L'approche actuelle consistant à récupérer tous les emplacements et à calculer les distances un par un peut devenir d'une lenteur prohibitive à mesure que le nombre d'entreprises augmente.

Présentation de la formule Haversine

La formule Haversine fournit une manière plus efficace de calculer la distance entre deux points de la Terre, en tenant compte de la courbure de la planète. Cela peut être incorporé dans la requête SQL pour récupérer directement les emplacements les plus proches.

Requête SQL optimisée

La requête SQL optimisée utilisant la formule Haversine ressemblerait à ceci :

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;
Copier après la connexion

Dans cette requête, les 37 et -122 représentent respectivement la latitude et la longitude de l'emplacement donné. La colonne Distance contient la distance entre l'emplacement donné et chaque entreprise. La clause HAVING filtre les emplacements situés à plus de 25 miles (ou dans un autre rayon souhaité).

Avantages

Cette approche optimisée présente plusieurs avantages :

  • Charge de base de données réduite : Il minimise le nombre d'enregistrements récupérés de la base de données, car il sélectionne uniquement les emplacements les plus proches.
  • Performances améliorées : Les calculs sont effectués dans la base de données, évitant ainsi la surcharge liée au calcul des distances en PHP.
  • Évolutivité : Il reste efficace même lors de la gestion d'un grand nombre de sites commerciaux.

Conclusion

En incorporant la formule Haversine dans la requête SQL, vous pouvez améliorer considérablement l'efficacité de la recherche des emplacements les plus proches d'un point donné, résolvant efficacement les problèmes de performances et fournissant une solution évolutive. pour les grandes bases de données.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!