[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: DeadLock в простых запросах
DeadLock
Хотелось бы спросить у кого есть опыт возникновения DeadLock в MySQL.
Скажем у меня есть чат, в нем есть приват. При отправке сообщения юзеру, напротив него в таблице счетчик сообщений увеличивается SET `count`=`count`+1. А что будет если отправят несколько человек одновременно ему сообщения? ведь для обновления требуется значения поля и последующее его увеличение, а как это сделать если в это время обновляет другой и блокирует запись (таблицы InnoDB). Вообще реален тут дедлок?



Спустя 1 час, 48 минут, 20 секунд (2.04.2010 - 19:01) DedMorozzz написал(а):
ну и что? Хоть 100 одновлеменно. каждый добавит +1, и совершенно не важно сколько было до этого. таблицу закрывать нету смысла. Вот если бы бралась запись и на основании взятой записи что-то делалось - тогда да. Там мона и транзакции и закрытие таблицы...но у тя не тот случай, если правильно понял твою задачу.

Спустя 1 час, 36 минут, 50 секунд (2.04.2010 - 20:38) kirik написал(а):
Движок InnoDB сам блокирует и разблокирует строки, при этом все паралельные запросы ожидают разблокировки строки. А операция n = n + 1 вообще атомарная, т.е. чтобы увеличить значение поля, его не нужно выбирать-изменять-записывать.

Спустя 41 минута, 15 секунд (2.04.2010 - 21:19) DeadLock написал(а):
Огромный респект! А то я думал пиши пропало:)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.