Bonjour,
J'ai une requète du type
Dans mon cas, le calcul de la fonction "madistance" est long et j'aimerais voir comment je peux accélérer cette requête, qui prend actuellement 8 secondes (hum).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT DISTINCT table.id, madistance(table.email, 'adresseemail@exemple.com') as distance FROM table WHERE madistance(table.email, 'adresseemail@exemple.com')<6 ORDER BY distance ASC LIMIT 5
Première question : lorsque MySQL trouve une ligne pour laquelle "madistance(table.email, 'adresseemail@exemple.com')<6", est-ce qu'il recalcule une deuxième fois cette valeur pour la stocker dans la colonne "distance", ou bien il ne fait ce calcul qu'une seule fois ?
Seconde question : est-ce que la présence de "LIMIT 5" permet d'accélérer les choses ou pas ? Autrement dit, est-ce qu'il s'arrête lorsqu'il a trouvé les 5 lignes demandées ou bien il cherche d'abord toutes les lignes puis après les avoir trouvées, il ne retourne que les 5 premières ?
Mille mercis pour vos infos !!
T.
Partager