• # optimisation

    Posté par . En réponse au message Comment démarrer mon projet de recherche spatiale / sql?. Évalué à 1.

    Je ne suis pas un expert en SQL, mais le calcul de distance est relativement couteux et j'imagine qu'en faisant une requete du type:
    SELECT * WHERE distance(A,B) < d; Le SGBD va avoir du mal a indexer correctement.
    Plusieurs pistes pour optimiser:
    Faire un premier filtrage dans une boite englobante du genre:
    pour les points a une distance d de P.
    select * as A where A.x < P.x+d and A.x > P.x-d and A.y < P.y+d and A.y > P.y-d;
    tu pourras ensuite calculer la distance sur ce sous-résultat.
    Un calcul de distance implique l'utilisation de racine carré, mais du coup tu peux encore optimiser un poil en comparant la distance au carré. (P.x-A.x)2+(P.y-A.y)2 < d2