Mysql
 sql >> Base de données >  >> RDS >> Mysql

comment optimiser une base de données de géolocalisation dans mysql pour la recherche/requête à distance euclidienne

Vous aurez du mal à optimiser pour ce type de requête. Une meilleure option serait de calculer une boîte englobante à partir du (x,y) coordonnées et delta transmis. Ensuite, recherchez tous les emplacements où les coordonnées tombent dans cette boîte. Cette requête serait beaucoup plus simple et pourrait utiliser tous les index que vous pourriez avoir sur les champs x et y.

Bien sûr, les résultats de cette requête ne sont pas aussi exacts puisqu'il s'agit d'un cadre de délimitation plutôt que d'un cercle. Si vous voulez de meilleurs résultats, vous pouvez prendre les résultats de la requête de la boîte englobante, puis utiliser la méthode euclidienne plus lente pour filtrer ceux qui ne tombent pas dans le cercle.