当前位置: 网创帮 » 生活知识 » innodb表锁 行级锁为什么锁住了整个表? 索引失效或事务隔离

innodb表锁 行级锁为什么锁住了整个表? 索引失效或事务隔离

innodb表锁 行级锁为什么锁住了整个表?

行级锁为什么锁住了整个表?对于写,MySQL使用以下表锁定方法:如果表上没有锁,请在表上设置写锁。否则,将锁请求放入写锁队列。对于读,MySQL使用以下锁定方法:如果表上没有写锁,请在表上设置读锁。否

行级锁为什么锁住了整个表?

对于写,MySQL使用以下表锁定方法:

如果表上没有锁,请在表上设置写锁。否则,将锁请求放入写锁队列。

对于读,MySQL使用以下锁定方法:

如果表上没有写锁,请在表上设置读锁。否则,将锁请求放入读锁队列。

释放锁时,写锁队列中的线程可以使用锁,然后是读锁队列中的线程。这意味着,如果一个表上有许多更新,select语句将等待,直到不再有更新为止。

MySQL的不同存储引擎代表不同的锁定机制。例如MyISAM和内存存储引擎采用表级锁;BDB存储引擎采用页级锁,但也支持表级锁;InnoDB存储引擎支持行级锁也支持表级锁,但默认使用行级锁。