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

Haruskah kita memasukkan kolom sortir, kunci utama pada indeks komposit (MySQL)

Jawabannya tergantung pada mesin yang Anda gunakan:

  • MyISAM - menambahkan id ke indeks dapat dan mungkin akan membantu
  • InnoDB - Kunci Utama sudah menjadi bagian dari setiap indeks sekunder, karena innodb menyimpan baris dalam BTREE yang diurutkan berdasarkan kunci utama dan indeks perlu primer untuk menunjuk ke baris yang sebenarnya - dalam hal itu menambahkannya berlebihan jika terakhir dalam indeks ( tetapi melakukannya tidak akan menambahkannya dua kali, jadi seharusnya tidak memperburuk keadaan). Dalam beberapa kasus, Anda mungkin ingin menambahkannya sebagai not-last, atau Anda memiliki multicolumn primary dan Anda menambahkan beberapa kolom ke indeks Anda dalam urutan yang berbeda - seharusnya tidak ada masalah dengan itu, innodb akan menambahkan kolom utama yang tersisa ke indeks itu, tetapi dapat menggunakan yang ditambahkan sebelumnya tanpa menduplikasinya)

Jadi jawabannya:

  1. Di InnoDB tidak perlu, Di MyISAM ada baiknya jika Anda benar-benar menggunakan pengurutan itu, jika Anda tidak menggunakannya, menambahkannya hanya membuat indeks itu lebih besar.
  2. Urutan kolom dalam definisi tabel dan urutan dalam indeks adalah hal yang terpisah, jadi boleh saja
  3. Ya, indeks itu tampaknya sangat bagus - tetapi Anda dapat memeriksanya sendiri menggunakan JELASKAN , ada kemungkinan kinerja yang lebih baik lagi - "mencakup indeks ", tapi itu ada biayanya, jadi kecuali kuerinya kritis dan berkinerja buruk, itu mungkin berlebihan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL menghitung semua baris alih-alih menghitung baris individual

  2. Bagaimana cara menambahkan total sebagai baris terakhir di sql saya?

  3. Perbedaan MySQL antara dua baris Pernyataan SELECT

  4. Cara membuat hubungan di MySQL

  5. Cara mengganti nama database MySQL