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

PILIH UNTUK PEMBARUAN memegang seluruh tabel di MySQL daripada baris demi baris

Tingkat isolasi default untuk tabel InnoDB adalah pembacaan berulang. Saat level isolasi ini aktif, kami mendapatkan perilaku berikut (kutipan dari:https://dev.mysql.com/doc/refman/5.5/en/set-transaction.html ):

Dengan kata lain:dapatkah Anda mencoba menggunakan kunci utama dalam kondisi WHERE dari SELECT? Jadi misalnya alih-alih:

START TRANSACTION;
SELECT * FROM productMacAddress WHERE status='free' limit 8 FOR UPDATE;

Coba:

START TRANSACTION;
SELECT * FROM productMacAddress WHERE id=10 FOR UPDATE;

jika id adalah kunci utama. Kolom lain dengan indeks unik di atasnya juga akan berfungsi. Saat menggunakan kolom non-unik dalam klausa WHERE Anda, InnoDB akan mengunci rentang baris.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Masalah menginstal Selatan pada database yang ada. MySql tidak mendukung 'pernyataan yang mengubah skema'

  2. Pelajari cara mengimpor data Excel ke database MySQL

  3. Urutkan mysql khusus berdasarkan nilai bidang

  4. Sebuah utas digantung di java.net.SocketInputStream.socketRead0(Metode Asli), ada yang tahu apa yang terjadi?

  5. Cara menyandikan (utf8mb4) dengan Python