Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zoptymalizuj zapytanie do samodzielnego łączenia MySQL

brakuje indeksu. Spróbuj użyć EXPLAIN do przeanalizowania swojego zapytania, to ci bardzo pomoże.

Rozwiązanie jest proste, oto jest:http://sqlfiddle.com/#! 2/56 grudnia/1/0

Musisz dodać indeks, który zawiera kolumny użyte w instrukcji where, w kolejności ich użycia:

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

Musisz także wymusić użycie indeksu przy łączeniu, ponieważ dołączasz tabelę do siebie:

JOIN checks checks2

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

(jeśli istnieje lepszy sposób, chciałbym o tym wiedzieć) :)

Pozdrawiam,



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sparametryzowane zapytanie mysql w ASP.NET

  2. Pobierz ostatni wiersz sygnatury czasowej z tabeli za pomocą INNER JOIN

  3. UTWÓRZ TYP na MySQL

  4. Usuń wiersze SQL na podstawie innej tabeli

  5. Dokładne znaczenie klucza obcego MySQL Klauzula „on delete rest”