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

Cegah baca saat memperbarui tabel

Dengan asumsi Anda menggunakan mesin transaksi (Biasanya Innodb), kosongkan dan isi ulang tabel dalam transaksi yang sama.

Pastikan pembaca Anda menggunakan READ_COMMITTED atau tingkat isolasi transaksi yang lebih tinggi (standarnya adalah REPEATABLE READ yang lebih tinggi).

Dengan begitu pembaca akan tetap dapat membaca isi tabel yang lama selama pembaruan.

Ada beberapa hal yang harus diperhatikan:

  • Jika tabel sangat besar sehingga menghabiskan area rollback - ini dimungkinkan jika Anda memperbarui seluruh (misalnya) tabel baris 1 juta. Tentu saja ini bisa diatur tetapi ada batasannya
  • Jika transaksi gagal di tengah jalan dan dibatalkan - mengembalikan transaksi besar SANGAT tidak efisien di InnoDB (dioptimalkan untuk komit, bukan pengembalian)
  • Hati-hati dengan deadlock dan lock timeout, yang lebih mungkin terjadi jika Anda menggunakan transaksi besar.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Laravel:pesan di mana di

  2. Manakah cara terbaik untuk mengunduh data awal basis data ke aplikasi iOS?

  3. Mengapa urutan luar oleh tidak berfungsi dengan benar?

  4. Mengapa saya mendapatkan Cannot pass parameter 2 dengan kesalahan referensi ketika saya menggunakan bindParam dengan nilai konstan?

  5. Pencarian Kedekatan