Mysql
 sql >> Base de données >  >> RDS >> Mysql

Que s'est-il passé en premier dans mysql :joindre ou où

Le join se produit avant le where , cependant...

Le where La clause est un filtre pour toutes les lignes renvoyées par la jointure, mais l'optimiseur le reconnaîtra si un index existe sur A.id , il sera utilisé pour récupérer les lignes de A qui correspondent, alors la jointure se produira, puis théoriquement la clause where filtrera les résultats, mais encore une fois l'optimiseur reconnaîtra que la condition sera déjà remplie donc il l'ignorera en tant que filtre.

Cela dit, l'optimiseur renverra toujours le même résultat que celui qui serait renvoyé sans l'optimiseur.