sql >> Databasteknik >  >> RDS >> Mysql

vilken fråga är bättre och effektiv - mysql

1- Det är en no brainer, använd typ I

2- Typ II-anslutningen kallas också 'implicit join', medan typ I kallas 'explicit join'. Med modern DBMS kommer du inte ha några prestandaproblem med normal fråga. Men jag tror att med en stor komplex fleranslutningsfråga kan DBMS ha problem med den implicita sammanfogningen. Att endast använda explicit join kan förbättra din förklaraplan, så resultatet blir snabbare!

3- Så prestanda kan vara ett problem, men kanske viktigast är att läsbarheten förbättras för ytterligare underhåll. Explicit join förklara exakt vad du vill gå med i vilket fält, medan implicit join inte visas om du gör en join eller ett filter. Where-satsen är för filter, inte för join !

Och en stor poäng för explicit sammanfogning:yttre sammanfogning är verkligen irriterande med implicit sammanfogning. Det är så svårt att läsa när du vill ha multipel sammanfogning med yttre sammanfogning att explicit sammanfogning är lösningen.

4- Exekutionsplan är vad du behöver (Se dokumentet )

Några dubbletter :

Explicit vs implicit SQL-joins

SQL join:where clause vs on clause

INNER JOIN ON vs WHERE-klausul



  1. MySQL Limit LEFT JOIN Subquery efter att ha gått med

  2. Index autoinkrement för Microsoft SQL Server 2008 R2

  3. Hur man får in ett värde för trigger

  4. Översikt över programmering på serversidan i PostgreSQL