MySQL 表锁、行锁、间隙锁

表锁:

       表锁有两种模式:表共享读锁、表独占写锁

               表共享读锁:读锁不会阻塞其他进程对同一表的读操作,但阻塞写操作,只有释放锁后其他进程才可以写

               表独占写锁:写锁会阻塞其他进程对同一表的读和写,只有写锁释放后,其他进程才可以读写

        简而言之:读锁会阻塞写,不阻塞读;写锁阻塞读和写

行锁:只锁住某一行或多行的读写操作,对同一张表的其他行不加锁,使用InnoDB存储引擎,支持事务。

索引失效会导致行锁变成表锁。

间隙锁:

        当用范围条件检索数据并请求共享或排他锁时,InnoDB会给符合条件的已有记录的索引加锁,对于在条件范围内胆并不存在的记录,叫做“间隙”,InnoDB也会对这个“间隙”进行加锁

猜你喜欢

转载自blog.csdn.net/a15123837995/article/details/84525501