Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Optimalkan permintaan bergabung sendiri MySQL

Anda kehilangan indeks. Coba gunakan EXPLAIN untuk menganalisis kueri Anda, ini akan banyak membantu Anda.

Solusinya sederhana, ini dia:http://sqlfiddle.com/#! 2/56deb/1/0

Anda perlu menambahkan indeks yang menyertakan kolom yang digunakan dalam pernyataan where agar dapat digunakan:

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

Anda juga perlu memaksakan penggunaan indeks pada gabungan, karena Anda menggabungkan tabel ke dirinya sendiri:

JOIN checks checks2

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

(jika ada cara yang lebih baik saya ingin mengetahuinya) :)

Salam,



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menambahkan beberapa batasan ke kueri?

  2. Mengambil daftar tertaut di database MySQL

  3. Cara memilih setiap baris ke-n di mySQL mulai dari n

  4. PHP &MySQL membandingkan kata sandi

  5. Terjadi kesalahan saat menyambungkan ke instance MySQL lokal dari Google App Engine Java.