MySQL LOCK TABLE

锁定用于解决并发问题。仅在运行事务时才需要锁定,该事务首先从数据库读取值,然后将该值写入数据库。自包含插入,更新或删除操作永远不需要锁。

有两种锁可用

READ LOCK - 当用户只从表中读取时。

WRITE LOCK - 当用户同时读取和写入表格时。

当用户在表上保存 WRITE LOCK 时,没有其他用户可以读取或写入该表。当用户在桌面上持有 READ LOCK 时,其他用户也可以读取或保持 READ LOCK,但没有用户可以在该桌面上写或持有 WRITE LOCK

如果默认存储引擎是 InnoDB,MySQL 会自动使用行级锁定,这样多个事务可以同时使用同一个表进行读写,而不会让对方等待。

对于除 InnoDB 之外的所有存储引擎,MySQL 使用表锁定。

有关表锁的更多详细信息,请参见此处