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

quelle requête est meilleure et efficace - mysql

1- C'est une évidence, utilisez le Type I

2- Les jointures de type II sont aussi appelées « jointures implicites », alors que les jointures de type I sont appelées « jointures explicites ». Avec les SGBD modernes, vous n'aurez aucun problème de performances avec une requête normale. Mais je pense qu'avec une grande requête multi jointure complexe, le SGBD pourrait avoir un problème avec la jointure implicite. L'utilisation d'une jointure explicite uniquement pourrait améliorer votre plan d'explication, donc un résultat plus rapide !

3- Les performances pourraient donc être un problème, mais le plus important peut-être, la lisibilité est améliorée pour une maintenance ultérieure. La jointure explicite explique exactement ce que vous voulez joindre sur quel champ, tandis que la jointure implicite ne montre pas si vous faites une jointure ou un filtre. La clause Where est pour le filtre, pas pour la jointure !

Et un gros gros point pour les jointures explicites :les jointures externes sont vraiment ennuyeuses avec les jointures implicites. C'est tellement difficile à lire lorsque vous voulez des jointures multiples avec une jointure externe que la jointure explicite est LA solution.

4- Le plan d'exécution est ce dont vous avez besoin (Voir la doc )

Quelques doublons :

Jointures SQL explicites et implicites

Jointure SQL :clause where vs clause on

Clause INNER JOIN ON vs WHERE