Bonjour,

Actuellement, je fais cette requête :

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
SELECT lat, lon, ( 6366 * ACOS( COS( RADIANS( 49.188005 ) ) * COS( RADIANS( lat ) ) * COS( RADIANS( lon ) - RADIANS( - 0.3661 ) ) + SIN( RADIANS( 49.188005 ) ) * SIN( RADIANS( lat ) ) ) ) AS distance
FROM Entreprises
WHERE lat
BETWEEN 49.1 
AND 49.3 
AND lon
BETWEEN -1
AND 0

Celle-ci s'éxécute en 0,0015 sec, ce qui me semble assez raisonnable.

La même requête avec un tri de distance :

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
SELECT lat, lon, ( 6366 * ACOS( COS( RADIANS( 49.188005 ) ) * COS( RADIANS( lat ) ) * COS( RADIANS( lon ) - RADIANS( - 0.3661 ) ) + SIN( RADIANS( 49.188005 ) ) * SIN( RADIANS( lat ) ) ) ) AS distance
FROM Entreprises
WHERE lat
BETWEEN 49.1 
AND 49.3 
AND lon
BETWEEN -1
AND 0 
ORDER BY `distance` ASC

Et elle s'éxécute en plus de 2 secondes, ce qui ne va plus du tout

Auriez-vous une idée d'optimisation ?

Merci