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

Pengoptimalan indeks tabel MySQL

Nah indeks pada kolom cap waktu dan userid akan sangat membantu. Anda harus dapat membaca output dari Pernyataan EXPLAIN.

Buka MySQL dan lakukan hal berikut:

EXPLAIN SELECT timestamp, username, [a few more] FROM log 
WHERE timestamp  BETWEEN '2012-03-30 08:00:00' AND '2012-03-30 16:00:00' 
AND username='XX' 

Ini menunjukkan kepada Anda rencana yang digunakan MySQL untuk mengeksekusi kueri. Akan ada kolom yang disebut kunci. Ini menunjukkan indeks apa yang digunakan MySQL dalam kueri. Saya menduga Anda akan melihat SEMUA di sana yang berarti MySQL memindai tabel dari atas ke bawah mencocokkan setiap baris dengan klausa where Anda. Sekarang buat indeks pada kolom timestamp dan userid. Jalankan lagi pernyataan EXPLAIN. Anda akan melihat indeks yang Anda buat di kolom kunci.

Jika MySQL menggunakan indeks maka kueri Anda akan jauh lebih cepat. Hanya ingat untuk tidak over index. Indeks membuat penyisipan, pembaruan, dan penghapusan lebih lambat. Saat Anda memasukkan baris baru ke dalam tabel dan ada tiga indeks di atas tabel, baris baru harus menulis 3 nilai ke tiga indeks yang berbeda. Jadi ini adalah pedang bermata dua.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. batas waktu permintaan python MySQLDB

  2. permintaan mysql REPLACE dengan beberapa kunci utama

  3. mysql pilih stempel waktu antara a dan b mengembalikan semua atau 0 stempel waktu

  4. mysql dengan nilai yang dipisahkan koma

  5. Bagaimana cara membersihkan data yang diterima dari area teks dengan benar, saat mengeluarkannya kembali ke area teks?