sql >> Database >  >> RDS >> Mysql

Optimaliseer MySQL self-join-query

je mist een index. Probeer EXPLAIN te gebruiken om uw vraag te analyseren, het zal u veel helpen.

De oplossing is simpel, hier is het:http://sqlfiddle.com/#! 2/56deb/1/0

U moet een index toevoegen die de kolommen bevat die in de waar-instructie worden gebruikt in de volgorde waarin ze worden gebruikt:

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

U moet ook het gebruik van de index op de join forceren, aangezien u de tabel aan zichzelf toevoegt:

JOIN checks checks2

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

(als er een betere manier is, zou ik dat graag willen weten) :)

Groeten,



  1. Multi-dimensionale array van overeenkomende mysql-kolommen

  2. Postgresql join_collapse_limit en tijd voor queryplanning

  3. miljoen tabel maken in een database?

  4. MySQL RAND() Functie – Genereer een willekeurig getal in MySQL