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

MySQL concurrency, bagaimana cara kerjanya dan apakah saya perlu menanganinya di aplikasi saya

Pernyataan SQL bersifat atomik. Artinya, jika Anda menjalankan sesuatu seperti ini:

UPDATE Cars SET Sold = Sold + 1

Tidak ada yang bisa mengubah Sold variabel selama pernyataan ini. Itu selalu bertambah 1, bahkan jika orang lain mengeksekusi pernyataan yang sama secara bersamaan.

Masalah terjadi jika Anda memiliki pernyataan yang saling bergantung:

a = SELECT Sold FROM Cars;
UPDATE Cars SET Sold = a + 1;

Di antara kueri ini, pengguna lain dapat mengubah tabel Mobil dan memperbarui Terjual. Untuk mencegah hal ini, bungkus dalam transaksi:

BEGIN;
a = SELECT Sold FROM Cars;
UPDATE Cars SET Sold = a + 1;
COMMIT;

Transaksi didukung oleh InnoDB, tetapi tidak didukung oleh MyISAM.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. baris terakhir kedua dari tabel mysql

  2. Performa REGEXP (bandingkan dengan LIKE dan =)

  3. Literal karakter Unicode (heksadesimal) di MySQL

  4. Pilih dari tabel mysql WHERE field='$array'?

  5. COUNT(*) dari beberapa tabel di MySQL