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

Apakah benar mengindeks semua kolom dalam database mysql?

Tidak, Anda tidak mengindeks semua kolom. Anda mengindeks kolom yang secara khusus terlibat dalam WHERE klausa, dan terkadang jika mereka terlibat dalam ORDER BY .

Dalam hal ini Anda ingin indeks pada type :

SELECT name FROM users WHERE type='admin'

Dalam hal ini Anda ingin indeks pada active,type :

SELECT name FROM users WHERE type='admin' AND active=1

Dalam hal ini Anda mungkin ingin indeks pada active,type,name :

SELECT name FROM users WHERE type-='admin' AND active=1 ORDER BY name LIMIT 10

Semakin banyak indeks yang Anda tambahkan, penulisan akan semakin lambat tetapi pembacaan akan semakin cepat. Ini adalah trade-off klasik. Evaluasi dengan cermat indeks apa yang Anda butuhkan dan terapkan hanya jika akan ada manfaat nyata. Jangan hanya menampar mereka karena Anda merasa mereka seharusnya ada di sana.

Pada tabel super kecil, yang memiliki <1000 baris, indeks tidak akan banyak membantu karena pemindaian tabel tidak akan memakan waktu lama. Dalam hal apa pun yang tidak sepele, mereka sangat penting.

Jika Anda mengalami masalah kinerja, saya sarankan bahwa skema Anda adalah kendala terbesar, bukan kurangnya indeks.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. OUT atau INOUT argumen 1 untuk rutin xxx bukan variabel atau variabel pseudo BARU di pemicu SEBELUM

  2. Bagaimana cara membuat gambar buruh pelabuhan dengan database yang terisi untuk pengujian otomatis?

  3. @OnDelete Hibernate anotasi tidak menghasilkan ON DELETE CASCADE untuk MySql

  4. Cara menggunakan transaksi di php/mysql

  5. hitung 10 nilai paling banyak muncul di kolom di mysql