mysql innodb 怎么锁表

2025-05-08 02:54:29
推荐回答(1个)
回答1:

  对WRITE,MySQL使用的表锁定方法原理如下:   如果在表上没有锁,在它上面放一个写锁。 否则,把锁定请求放在写锁定队列中。   对READ,MySQL使用的锁定方法原理如下:   如果在表上没有写锁定,把一个读锁定放在它上面。 否则,把锁请求放在读锁定队列中。   当一个锁定被释放时,锁定可被写锁定队列中的线程得到,然后是读锁定队列中的线程。这意味着,如果在一个表上有许多更新,SELECT语句将等待直到没有更多的更新。   mysql 不同的存储引擎表示对应的不同的锁机制,如MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁;InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行级锁