MyISAM имеет различные виды замков.Операция SELECT
помещает READ LOCK на стол.Может быть несколько активных блокировок чтения в любой момент времени, если нет активных ЗАПИСЬ ЗАМКОВ .Операции, которые изменяют таблицу, например.INSERT
, UPDATE
, DELETE
или ALTER TABLE
поместите ЗАПИСЬ ЗАПИСИ на стол.Блокировка записи может быть размещена только на столе, когда нет активных блокировок чтения;Если есть активные блокировки чтения, MyISAM ставит в очередь блокировку записи, которая будет активирована, как только истечет срок действия всех активных блокировок чтения.
Аналогично, когда есть активная блокировка чтения, попытка установить блокировку чтения на таблицу будет поставлена в очередь.блокировка (и связанный запрос) до истечения срока действия блокировки записи в таблице.
В конечном итоге все это означает, что:
- Вы можете иметь любое количество активных блокировок чтения (также называемыхобщие блокировки)
- У вас может быть только одна активная блокировка записи (также называемая эксклюзивной блокировкой)
Для получения дополнительной информации см .: http://dev.mysql.com/doc/refman/5.5/en/internal-locking.html