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

MySQL menggunakan filesort pada kolom TIMESTAMP yang diindeks

Dalam hal ini, MySQL tidak menggunakan indeks Anda untuk menyortir, dan itu adalah hal yang BAIK. Mengapa? Tabel Anda hanya berisi 64k baris, lebar baris rata-rata sekitar 26 byte (jika saya menambahkan ukuran kolom dengan benar), jadi ukuran tabel total pada disk harus sekitar 2MB. Sangat murah untuk membaca hanya 2MB data dari disk ke memori (mungkin hanya dalam 1-2 operasi disk atau pencarian) dan kemudian hanya melakukan filesort di memori (mungkin variasi quicksort).

Jika MySQL melakukan pengambilan berdasarkan urutan indeks seperti yang Anda inginkan, itu harus melakukan 64000 operasi pencarian disk, satu demi satu catatan! Itu akan sangat, sangat lambat.

Indeks bisa bagus ketika Anda dapat menggunakannya untuk dengan cepat melompat ke lokasi yang diketahui dalam file besar dan membaca hanya sejumlah kecil data, seperti dalam klausa WHERE. Tapi, dalam hal ini, itu bukan ide yang bagus - dan MySQL tidak bodoh!

Jika tabel Anda sangat besar (lebih dari ukuran RAM), maka MySQL pasti akan mulai menggunakan indeks Anda - dan ini juga merupakan hal yang baik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. kueri mySQL:Bagaimana cara memasukkan dengan UNION?

  2. PHP:Ulangi beberapa array dan buat kueri SQL INSERT

  3. AES_ENCRYPT dan AES_DECRYPT menggunakan java

  4. Menggunakan XML dan XSD untuk membuat database yang terisi

  5. Menggabungkan String dan Angka di MySQL