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

Urutan pengindeksan komposit InnoDB dan kinerja INSERT

(Catatan:Jawaban ini mengklarifikasi atau tidak setuju dengan beberapa komentar yang sudah ditulis.)

DELETEs diperlambat karena menghapus entri indeks. UPDATEs mungkin diperlambat -- itu tergantung pada apakah kolom yang diindeks diubah.

SELECTs , UPDATEs , dan DELETEs , tetapi bukan INSERTs , perlu menemukan barisnya; untuk ini, indeks dapat banyak membantu.

Sebuah INSERT terluka dalam jumlah ekstra jika ada UNIQUE indeks untuk diperiksa.

Kunci sekunder (dalam InnoDB), kecuali untuk UNIQUE kunci, diperbarui (biasanya karena INSERT dan DELETEs , tetapi mungkin karena UPDATEs ) dengan cara 'tertunda' melalui apa yang disebut "Ubah Buffer". Ini secara efektif menunda pembaruan indeks, tetapi tetap membuat indeks dapat digunakan sepenuhnya.

Tak satu pun dari ini dipengaruhi oleh urutan kolom dalam indeks. Namun, jika indeks lebih besar daripada yang dapat di-cache di RAM, "caching" ikut bermain, dan I/O mungkin terlibat atau tidak. Tapi itu topik lain.

Secara umum manfaat dari indeks untuk membaca jauh melebihi perlambatan untuk operasi tulis.



  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 hasil gabungan keluaran dari dua tabel MySQL menggunakan PDO

  2. Mulai ulang Mysql dengan PHP

  3. Mengapa MYSQL LIMIT offset yang lebih tinggi memperlambat kueri?

  4. Bagaimana cara men-debug Lock wait timeout terlampaui di MySQL?

  5. Struktur Tabel MySQL Terbaik:2 Orang Tua, 1 Anak