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

tingkat isolasi dan penguncian inno db

InnoDB menetapkan jenis kunci tertentu sebagai berikut.

  • SELECT ... FROM adalah pembacaan yang konsisten, membaca snapshot database dan tidak menyetel kunci kecuali jika tingkat isolasi transaksi disetel ke SERIALIZABLE. Untuk tingkat SERIALIZABLE, penelusuran menetapkan kunci kunci berikutnya yang dibagikan pada catatan indeks yang ditemuinya.

  • PILIH ... FROM ... LOCK IN SHARE MODE mengatur kunci kunci berikutnya yang dibagikan pada semua catatan indeks yang ditemukan dalam pencarian.

  • Untuk catatan indeks pertemuan pencarian, SELECT ... FROM ... FOR UPDATE memblokir sesi lain dari melakukan SELECT ... FROM ... LOCK IN SHARE MODE atau dari membaca di tingkat isolasi transaksi tertentu. Pembacaan yang konsisten akan mengabaikan kunci apa pun yang disetel pada rekaman yang ada dalam tampilan baca.

  • UPDATE ... WHERE ... menyetel kunci eksklusif berikutnya pada setiap catatan yang ditemukan dalam pencarian.

  • DELETE FROM ... WHERE ... menyetel kunci eksklusif berikutnya pada setiap catatan yang ditemukan dalam pencarian.

  • INSERT menetapkan kunci eksklusif pada baris yang disisipkan. Kunci ini adalah kunci catatan indeks, bukan kunci kunci berikutnya (yaitu, tidak ada kunci celah) dan tidak mencegah sesi lain untuk masuk ke celah sebelum baris yang disisipkan.

InnoDB memiliki beberapa jenis kunci tingkat rekor:

  • Kunci rekaman:Ini adalah kunci pada catatan indeks.

  • Kunci celah:Ini adalah kunci pada celah antara catatan indeks, atau kunci pada celah sebelum catatan indeks pertama atau setelah catatan indeks terakhir.

  • Kunci tombol berikutnya:Ini adalah kombinasi dari kunci catatan pada catatan indeks dan kunci celah pada celah sebelum catatan indeks.

Lihat Selengkapnya :

Menghindari Masalah Phantom Menggunakan Penguncian Tombol Berikutnya

Menghindari kebuntuan



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. koneksi pdo mysql tidak menutup?

  2. Kueri MySQL Nilai Minimum

  3. Bagaimana saya bisa memetakan tanggal Java ke DATETIME di mysql (secara default TIMESTAMP-nya) dengan anotasi Hibernate

  4. Cara menonaktifkan indeks di innodb

  5. Peningkatan otomatis tidak diatur ulang di MySQL