Mysql
 sql >> Database >  >> RDS >> Mysql

Ottimizza la query di accesso automatico a MySQL

ti manca un indice. Prova ad utilizzare EXPLAIN per analizzare la tua query, ti aiuterà molto.

La soluzione è semplice, eccola qui:http://sqlfiddle.com/#! 2/56deb/1/0

È necessario aggiungere un indice che includa le colonne utilizzate nell'istruzione where nell'ordine in cui vengono utilizzate:

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

Inoltre devi forzare l'uso dell'indice sul join, dato che stai unendo la tabella a se stessa:

JOIN checks checks2

INDICE FORZA ( notte_di_2 ) ATTIVO ( controlli1.notte_di =controlli2.notte_di )

(se c'è un modo migliore vorrei saperlo) :)

Saluti,