Mysql
 sql >> база данни >  >> RDS >> Mysql

едновременен достъп до базата данни MySQL с помощта на съхранена процедура

Първо, както е посочено в друга публикация, използвайте InnoDB. Това е машината за съхранение по подразбиране от MySQL 5.5 и е по-стабилна.

Второ, вижте тази страница:http:// dev.mysql.com/doc/refman/5.5/en/innodb-locking-reads.html

Трябва да използвате SELECT ... FOR UPDATE, за да предотвратите други връзки да четат реда, който ще актуализирате, докато транзакцията ви не приключи:

START TRANSACTION;

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

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

COMMIT;

Това е по-добре от заключване на таблицата, защото InnoDB прави заключвания на ниво ред. Транзакцията по-горе ще заключи само редовете, където id =5... така че друга заявка, работеща с id =10, няма да бъде задържана от тази заявка.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Фиксиране на кодировки

  2. Как да създадете парола от шест знака в MySQL 5.7

  3. MySQL запазва резултатите от EXECUTE в променлива?

  4. ИЗТРИВАНЕ на всички дублиращи се теми с няколко условия

  5. Свържете се с онлайн MySQL база данни от localhost