MyISAM има различни видове ключалки. A SELECT
операция поставя ЗАКЛЮЧВАНЕ НА ПРОЧЕТЕНЕ на масата. Може да има множество активни заключвания за четене във всеки даден момент, стига да няма активни ЗАКЛЮЧВАНИЯ НА ЗАПИСАНЕ . Операции, които променят таблицата, напр. INSERT
, UPDATE
, DELETE
или ALTER TABLE
поставете ЗАКЛЮЧВАНЕ НА ПИСАНЕ на масата. Заключването на запис може да бъде поставено върху таблица само когато няма активни заключвания за четене; Ако има активни заключвания за четене, MyISAM поставя на опашка заключването за запис, за да се активира веднага щом всички активни заключвания за четене изтекат.
По същия начин, когато има активно заключване на запис, опитът за поставяне на заключване за четене на таблица ще постави в опашка заключването (и свързаната заявка), докато заключването на запис не изтече в таблицата.
В крайна сметка всичко това означава, че:
- Можете да имате произволен брой активни заключвания за четене (наричани още споделени)
- Можете да имате само едно активно заключване на запис (наричано още изключително заключване)
За повече информация вижте:http://dev.mysql. com/doc/refman/5.5/en/internal-locking.html