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

Kunci eksklusif MySQL

Ya, Anda mengunci semua baris dalam tabel ketika Anda memiliki kondisi pada kolom yang tidak diindeks seperti user_id .

Kunci berlaku untuk semua baris yang "diperiksa". Kondisi Anda WHERE user_id = <user_id> harus memeriksa semua baris dalam tabel, dan uji satu per satu untuk melihat apakah mereka cocok dengan nilai <user_id> .

Kedua kueri memeriksa seluruh rangkaian baris, meskipun mereka mencari nilai spesifik yang berbeda dari <user_id> , jadi mereka berkonflik.

Jika Anda memiliki indeks pada user_id kolom, maka MySQL akan menggunakan indeks itu untuk menemukan baris yang cocok terlebih dahulu, kemudian hanya baris yang cocok yang akan menjadi baris yang diperiksa, dan karena itu akan dikunci.

Ini tidak ada hubungannya dengan tingkat isolasi transaksi. Jenis penguncian ini terjadi di semua tingkat isolasi transaksi.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pesan sebelum CONCAT_WS

  2. Injeksi MySQL - Gunakan kueri SELECT untuk MEMPERBARUI/HAPUS

  3. Akses ditolak untuk pengguna 'root'@'localhost' saat mencoba memberikan hak istimewa. Bagaimana cara memberikan hak istimewa?

  4. Bagaimana saya bisa menggunakan ADO.NET DbProviderFactory dengan MySQL?

  5. TEMUKAN_IN_SET() vs IN()