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

MySQL - indeks beberapa kolom

Aturan umum untuk indeks adalah menampar satu ke bidang apa pun yang digunakan dalam WHERE atau JOIN ayat.

Karena itu, ada beberapa pengoptimalan yang dapat Anda lakukan. Jika Anda TAHU bahwa kombinasi bidang tertentu adalah satu-satunya yang akan digunakan di WHERE pada tabel tertentu, maka Anda dapat membuat kunci multi-bidang tunggal hanya pada bidang tersebut, mis.

INDEX (field1, field2, field5)

v.s.

INDEX (field1),
INDEX (field2),
INDEX (field5)

Indeks multi-bidang bisa lebih efisien dalam banyak kasus, dibandingkan harus memindai banyak indeks. Kelemahannya adalah indeks multi-bidang hanya dapat digunakan jika bidang yang dimaksud benar-benar digunakan dalam klausa WHERE.

Dengan kueri sampel Anda, sejak element dan field_id berada di ketiga indeks, Anda mungkin lebih baik membaginya menjadi indeks khusus mereka sendiri. Jika ini adalah bidang yang dapat diubah, maka lebih baik menyimpannya sebagai indeks khusus mereka sendiri. misalnya jika Anda harus mengubah field_id secara massal, DB harus memperbarui 3 indeks berbeda, vs. memperbarui hanya satu yang berdedikasi.

Tetapi semuanya bermuara pada pembandingan - uji pengaturan khusus Anda dengan berbagai pengaturan indeks dan lihat mana yang berkinerja terbaik. Aturan praktis berguna, tetapi tidak selalu berhasil 100%.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. C# dengan MySQL melalui Connector/NET

  2. Peta JPA tipe json MySQL, mendapat string yang kacau

  3. panggilan ke fungsi anggota execute() pada non-objek

  4. Datetime sama atau lebih besar dari hari ini di MySQL

  5. Analog teks panjang MySQL di Microsoft SQL?