mysql 在选择、更新或删除时锁定表吗?

ben*_*jaz 5 mysql locking

我有几个关于 MySQL 表的问题lock。如果有人回答,我很感激:)

  1. MySQL在以下情况下是否自动锁定表:

    • SELECT id FROM members;
    • UPDATE members SET name = 'john' WHERE id = 7;
  2. 这两者有什么区别:

    • LOCK TABLE items READ ; SELECT * FROM 'items;
    • SELECT * FROM 'items';
  3. 出于某种原因,我的印象是 MySQL 在必要的情况下会自动锁定表!如何检查锁定发生的时间和方式?

谢谢你。

Ste*_*han 5

1.a) 不需要锁
1.b) 锁定表(myisam 引擎)或者如果您使用 innodb 引擎,则您有行级锁定

2.a) 为读操作锁定表(直到这个锁被释放,不会发生写操作)
2.b) 不需要锁

正如 Lithu TV 所建议的,请阅读DOCS以获取所有用例。