为什么 mysql 在 select 数据时给 myisam 引擎 table 添加读锁?

Why mysql add a read lock to myisam engine table when select data?

为什么 mysql 在 select 数据时向 myisam 引擎 table 添加读锁?

官方手册上只提到innodb有一个默认的isolation.And我们知道myisam引擎不支持transaction.But为什么mysql给selecting table?

如果 table 在查询读取时被修改,读取的查询可能 return 不正确的结果。为了防止这种情况,MyISAM 使用锁* 来防止在任何其他线程正在从 table 读取时对 table 进行写入。但是,此锁不会阻止其他读取查询 - 任何数量的线程都可以共享锁。

当查询写入表时,表也会被锁定。这使用不同类型的锁来防止在 table.

上发生任何其他写入 或读取