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

Optimer MySQL-selvdeltagelsesforespørgsel

du mangler et indeks. Prøv at bruge EXPLAIN til at analysere din forespørgsel, det vil hjælpe dig meget.

Løsningen er enkel, her er den:http://sqlfiddle.com/#! 2/56deb/1/0

Du skal tilføje et indeks, der inkluderer kolonnerne brugt i where-sætningen i den rækkefølge, de bruges:

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

Du skal også tvinge brugen af ​​indekset på joinforbindelsen, da du slutter tabellen til sig selv:

JOIN checks checks2

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

(hvis der er en bedre måde, vil jeg gerne vide om det) :)

Med venlig hilsen



  1. Implementering af fuldtekstsøgning i SQL Server 2016 for begyndere

  2. Jeg vil tilføje 30 dage til mysql-datorækken

  3. 0 til 60 :Skift til indirekte kontrolpunkter

  4. Implementering af applikationer, der bruger LINQ til enheder