Първо, както е посочено в друга публикация, използвайте 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, няма да бъде задържана от тази заявка.