Mysql параллелизм: что произойдет, если доступ к заблокированной таблице? - PullRequest
7 голосов
/ 20 марта 2012

Вопрос довольно простой, но я не смог найти точного ответа: Что происходит в myisam db, если php-файл блокирует таблицу (с атомарной операцией, скажем, INSERT), а другой php-файл пытается получить доступ к той же таблице (чтение или запись)?

Теперь, когда очевидно, что второй сеанс не сможет получить доступ к таблице, что именно происходит? Это возвращает какую-то ошибку? Он ожидает в очереди, пока не сможет получить к нему доступ?

1 Ответ

7 голосов
/ 20 марта 2012

Второе соединение будет ожидать освобождения блокировки.

С MyISAM любая запись (вставка / обновление / удаление) заблокирует таблицу,

Однако с таблицей INNODB тип атомарной операциизаблокирует только затронутые строки

...