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

akses bersamaan ke database MySQL menggunakan prosedur tersimpan

Pertama, seperti yang dinyatakan dalam posting lain, gunakan InnoDB. Ini adalah mesin penyimpanan default pada MySQL 5.5 dan lebih kuat.

Kedua, lihat halaman ini:http:// dev.mysql.com/doc/refman/5.5/en/innodb-locking-reads.html

Anda harus menggunakan SELECT ... FOR UPDATE untuk mencegah koneksi lain membaca baris yang akan Anda perbarui hingga transaksi Anda selesai:

START TRANSACTION;

SELECT value INTO @value
FROM mytable
WHERE id = 5
FOR UPDATE;

UPDATE mytable
SET value = value + 1
WHERE id = 5;

COMMIT;

Ini lebih baik daripada mengunci tabel karena InnoDB melakukan penguncian tingkat baris. Transaksi di atas hanya akan mengunci baris di mana id =5... jadi kueri lain yang bekerja dengan id =10 tidak akan ditahan oleh kueri ini.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa menggunakan mysql di C++?

  2. masuk sebagai pengguna atau admin dari 2 tabel berbeda

  3. Cara Melihat Variabel Status dan Sistem di MySQL Workbench menggunakan GUI

  4. Bagaimana saya bisa mengatasi MySQL Errcode 13 dengan SELECT INTO OUTFILE?

  5. Sintaks MySQL untuk menyisipkan baris baru di baris tengah?