Bonjour,
A chaque fois que j'écris une jointure, je me demande si l'ordre dans lequel on écrit celle-ci a une incidence sur les performances de la requête.
Soit A et B deux tables :
A(idA, TypeA, ...)
B(idB, FK_idA, ...)
Considérons que la table B a énormément plus de lignes que la table A.
Les deux écritures ci-dessous sont elles identiques ou pas au niveau de la performance de la requête ?
Par ailleurs, est-ce que ça change quelque chose si j'inverse la jointure ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT A.TypeA, B.* FROM B INNER JOIN A ON A.idA = B.FK_idA SELECT A.TypeA, B.* FROM B INNER JOIN A ON B.FK_idA = A.idA
Autrement dit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT A.TypeA, B.* FROM A INNER JOIN B ON A.idA = B.FK_idA SELECT A.TypeA, B.* FROM A INNER JOIN B ON B.FK_idA = A.idA
- Vaut-il mieux mettre la plus petite table dans le FROM et la plus grosse dans le JOIN ou l'inverse, ou on s'en fout ?
- Vaut-il mieux mettre la plus petite table en premier dans le ON ou l'inverse ou on s'en fout ?
Partager