sql >> Base de Datos >  >> RDS >> Mysql

Optimizar la consulta de autounión de MySQL

te falta un índice. Intenta usar EXPLAIN para analizar tu consulta, te ayudará mucho.

La solución es simple, aquí está:http://sqlfiddle.com/#! 2/56deb/1/0

Debe agregar un índice que incluya las columnas utilizadas en la instrucción where en el orden en que se utilizan:

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

También debe forzar el uso del índice en la unión, ya que está uniendo la tabla a sí misma:

JOIN checks checks2

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

(si hay una mejor manera, me gustaría saberlo) :)

Saludos,