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

MySQL:Perbedaan antara `... ADD INDEX(a); ... TAMBAHKAN INDEKS(b);` dan `... TAMBAHKAN INDEKS(a,b);`?

Gabungan INDEX adalah kombinasi dari kunci "a" dan "b". Ini meningkatkan akses secara signifikan jika "a" atau "a" DAN "b" adalah bagian dari ekspresi penelusuran.

Indeks ini tidak membantu jika Anda hanya memberikan "b" dalam pernyataan SQL Anda.

Oleh karena itu, mungkin berguna untuk memberikan dua indeks yang berbeda - tetapi mereka harus menggunakan nama yang berbeda.

Bergantung pada pola akses, saya akan merekomendasikan indeks pada "a" dan "b" dan indeks tambahan pada "b" jika ini sesuai dengan kebutuhan Anda.

Harap diingat, bahwa setiap indeks tambahan memperlambat database pada semua operasi yang mengubah data. Beberapa kali lebih baik untuk menjauhkan beberapa indeks. Biasanya merupakan saran yang baik untuk TIDAK MENGGUNAKAN indeks pada kolom mana pun dari tabel.

Satu petunjuk lagi:untuk memutuskan apakah INDEX(a,b) atau INDEX(b,a) harus digunakan, lihat distribusi data Anda. Masukkan nilai dengan spread lebih tinggi dari nilai yang berbeda ke dalam kolom pertama indeks untuk meningkatkan selektivitas indeks tersebut. Nilai ini biasanya didasarkan pada kualitas elemen indeks pertama.

Misalnya indeks pada kolom NAME dan SEX harus dibuat sebagai INDEX(NAME, SEX) karena masih banyak lagi nama yang berbeda jenis kelamin(es ?).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Doctrine2 ORM pilih untuk pembaruan

  2. jumlah harga anak di tabel lain mysql

  3. CakePHP:Bagaimana cara mengambil data dari dua tabel menggunakan inner join?

  4. Kasus penggunaan MySQL `FORCE INDEX`?

  5. Bagaimana cara saya keluar dari pencarian mysql/seperti permintaan dengan benar?