sql >> Databasteknik >  >> RDS >> Mysql

Förtydligande av sammanfogningsordning för skapande av tillfälliga tabeller

  1. Det hänvisar till den ordning i vilken optimeraren utvärderar dem (gå med i kö). Optimeraren kanske inte ens är medveten om ordningen på tabellerna i din SQL-sats.

  2. Nej, det motsäger inte vad som har skrivits i #3, eftersom svaret skriver uttryckligen (betoningen är min):

Resultatet och prestandan är två olika saker. Det finns faktiskt en omröstad kommentar till svaret som säger att

  1. Du kan tala om för optimeraren vilken tabell som ska behandlas först genom att använda straight_join a> :

Du måste dock vara försiktig med det eftersom du knyter optimerarens hand. Se denna SO ämne om att diskutera fördelar och nackdelar med straight_join.

Antal poster, där kriterier, index - de spelar alla sin roll i optimerarens beslut om bearbetningsordningen för tabeller. Det finns ingen magisk kula, du måste leka lite och förmodligen kan du lura optimeraren att ändra ordningen på borden.



  1. mySQL groupconcat returnerar BLOB xxxB / Kib

  2. IN-sats med NULL eller IS NULL

  3. COALESCE() för tomma (men inte null) fält

  4. Felet "Du har redan en användbar anslutning" i Visual Studio 2015 som lägger till datakälla