sql >> Databasteknik >  >> RDS >> Mysql

Optimera MySQL självanslutningsfråga

du saknar ett index. Testa att använda EXPLAIN för att analysera din fråga, det kommer att hjälpa dig mycket.

Lösningen är enkel, här är den:http://sqlfiddle.com/#! 2/56deb/1/0

Du måste lägga till ett index som inkluderar kolumnerna som används i where-satsen i den ordning de används:

KEY `night_of_2` (`night_of`,`student_id`,`check_class`)

Du måste också tvinga fram användningen av indexet på kopplingen, eftersom du ansluter tabellen till sig själv:

JOIN checks checks2

FORCE INDEX ( night_of_2 ) ON ( checks1.night_of =checks2.night_of )

(om det finns ett bättre sätt skulle jag vilja veta om det) :)

Hälsningar,



  1. Ställ in MySQL-kolumnalias till ett beräknat datum

  2. Visa framstegen för att fylla en datamängd från MySQL

  3. Hur man hämtar data från databasen och visar dem som en ListView

  4. INSERT INTO med exec med flera resultatuppsättningar