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

Mengapa komit tidak menyebabkan kebuntuan

Saya menduga ini adalah kasus tepi yang tidak layak untuk dibuat lebih efisien. Perhatikan bahwa Anda harus mendapatkan 3 sesi mencoba mengambil baris yang sama -- jarang terjadi. Dan Anda melakukan ROLLBACK -- juga jarang. Jadi kebuntuan yang terjadi memang berlebihan, tapi tidak layak untuk diperbaiki. Untuk alasan ini, seseorang harus siap untuk menangani kebuntuan di mana-mana.

FYI, Jika ini adalah 3 node dari cluster Galera, akan ada kesalahan pada COMMIT bahwa kode harus menangani. Saya menduga ada lebih banyak kombinasi dari hal-hal aneh yang terjadi jika Anda menerapkan transaksi ini (dengan rollback atau commit) beberapa kali ke beberapa node.

Sekarang untuk pertanyaan Anda... Agaknya kebuntuan tidak terjadi karena salah satu utas mendapat kunci eksklusif dan yang lainnya dipukul dengan "tunggu" alih-alih "jalan buntu".




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hapus duplikat di tabel MySql besar

  2. Bagaimana cara MEMPERBARUI baris dalam tabel atau INSERT jika tidak ada?

  3. Memfilter kueri MySQL di PHP

  4. Java Hibernate Periksa Replikasi MySQL sinkron

  5. Menghapus semua record tabel yang tidak direferensikan dari tabel lain