Optimisation aggregation (count) de points géographiques par zone
Bonjour,
J'ai la table "notes" avec les champs "latitude" et "longitude" (ce sont les "Notes" d'OpenStreetMap). Pour faire un heatmap (carte de chaleur) je souhaite avoir le compte des points (des "Notes") en "découpant la planète" en rectangles.
La requête actuelle fonctionne bien:
Code:
1 2 3 4 5 6 7 8
| set @dlon=10;
set @dlat=10;
select count(*) as count, lon, lat
from ( select
round(longitude/@dlon)*@dlon as lon,
round(latitude/@dlat)*@dlat as lat
from notes N) N1
group by lon, lat |
Comme il y a 3 000 000 de lignes et dans quelques mois encore plus ;-)
Voyez vous une autre façon de faire pour gagner en vitesse ?
Est-ce que les fonctions "spatial" pourraient apporter plus de performance ?
Merci à vous :-)