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

Menggunakan indeks, menggunakan sementara, menggunakan filesort - bagaimana cara memperbaikinya?

Nah, dokumen memberikan alasan yang tepat ketika "Menggunakan sementara" akan muncul:

Tabel sementara dapat dibuat dalam kondisi seperti ini:

Jika ada klausa ORDER BY dan klausa GROUP BY yang berbeda, atau jika ORDER BY atau GROUP BY berisi kolom dari tabel selain tabel pertama dalam antrian bergabung, tabel sementara dibuat.

DISTINCT dikombinasikan dengan ORDER BY mungkin memerlukan tabel sementara.

Jika Anda menggunakan opsi SQL_SMALL_RESULT, MySQL menggunakan tabel sementara dalam memori, kecuali jika kueri juga berisi elemen (dijelaskan kemudian) yang memerlukan penyimpanan di disk.

Pemindaian cepat menunjukkan bahwa Anda menderita #1.

Dan blog ini dari 2009 mengatakan bahwa "menggunakan filesort" berarti pengurutan tidak dapat dilakukan dengan file index. Karena Anda memesan berdasarkan bidang yang dihitung, itu juga akan benar.

Jadi, itulah yang "salah".



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Berapa ukuran kolom int(11) di mysql dalam byte?

  2. Apa yang Setara dengan LEN() di MySQL?

  3. Kinerja MySQL:Indeks MySQL/MariaDB

  4. Pelajari cara mengimpor data Excel ke database MySQL

  5. Mendapatkan string kueri SQL mentah dari pernyataan yang disiapkan PDO