innodb表锁 行级锁为什么锁住了整个表?
行级锁为什么锁住了整个表?对于写,MySQL使用以下表锁定方法:如果表上没有锁,请在表上设置写锁。否则,将锁请求放入写锁队列。对于读,MySQL使用以下锁定方法:如果表上没有写锁,请在表上设置读锁。否
行级锁为什么锁住了整个表?
对于写,MySQL使用以下表锁定方法:
如果表上没有锁,请在表上设置写锁。否则,将锁请求放入写锁队列。
对于读,MySQL使用以下锁定方法:
如果表上没有写锁,请在表上设置读锁。否则,将锁请求放入读锁队列。
释放锁时,写锁队列中的线程可以使用锁,然后是读锁队列中的线程。这意味着,如果一个表上有许多更新,select语句将等待,直到不再有更新为止。
MySQL的不同存储引擎代表不同的锁定机制。例如MyISAM和内存存储引擎采用表级锁;BDB存储引擎采用页级锁,但也支持表级锁;InnoDB存储引擎支持行级锁也支持表级锁,但默认使用行级锁。
