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

Apakah Urutan Bidang Indeks Multi-Kolom di MySQL Penting?

Ketika membahas indeks multi-kolom, saya menggunakan analogi dengan buku telepon. Buku telepon pada dasarnya adalah indeks pada nama belakang, kemudian nama depan. Jadi urutan pengurutan ditentukan oleh "kolom" mana yang lebih dulu. Penelusuran terbagi dalam beberapa kategori:

  1. Jika Anda mencari orang yang nama belakangnya adalah Smith, Anda dapat menemukannya dengan mudah karena buku tersebut diurutkan berdasarkan nama belakangnya.

  2. Jika Anda mencari orang yang nama depannya adalah John, buku telepon tidak membantu karena John tersebar di seluruh buku. Anda harus memindai seluruh buku telepon untuk menemukan semuanya.

  3. Jika Anda mencari orang dengan nama belakang tertentu Smith dan nama depan tertentu John, buku ini membantu karena Anda menemukan keluarga Smith diurutkan bersama-sama, dan di dalam grup Smith tersebut, keluarga John juga ditemukan dalam urutan yang diurutkan.

Jika Anda memiliki buku telepon yang diurutkan berdasarkan nama depan kemudian berdasarkan nama belakang, penyortiran buku akan membantu Anda dalam kasus #2 dan #3 di atas, tetapi bukan kasus #1.

Itu menjelaskan kasus untuk mencari nilai yang tepat, tetapi bagaimana jika Anda mencari berdasarkan rentang nilai? Katakanlah Anda ingin menemukan semua orang yang nama depannya adalah John dan yang nama belakangnya dimulai dengan 'S' (Smith, Saunders, Staunton, Sherman, dll.). John diurutkan di bawah 'J' dalam setiap nama belakang, tetapi jika Anda ingin semua John untuk semua nama belakang yang dimulai dengan 'S', John tidak dikelompokkan bersama. Mereka tersebar lagi, jadi Anda akhirnya harus memindai semua nama dengan nama belakang dimulai dengan 'S'. Sedangkan jika buku telepon disusun berdasarkan nama depan kemudian dengan nama belakang, Anda akan menemukan semua John bersama-sama, maka di dalam John, semua nama belakang 'S' akan dikelompokkan bersama.

Jadi urutan kolom dalam indeks multi-kolom pasti penting. Satu jenis kueri mungkin memerlukan urutan kolom tertentu untuk indeks. Jika Anda memiliki beberapa jenis kueri, Anda mungkin memerlukan beberapa indeks untuk membantunya, dengan kolom dalam urutan yang berbeda.

Anda dapat membaca presentasi saya Cara Merancang Indeks, Sungguh untuk informasi lebih lanjut.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menulis kueri SELECT aman yang memiliki sejumlah variabel nilai yang disediakan pengguna dengan mysqli?

  2. max(panjang(bidang)) di mysql

  3. Bagaimana saya bisa mengubah string menjadi float di mysql?

  4. Dapatkan terjemahan teks atau basis data

  5. Memasukkan objek datetime.datetime Python ke MySQL