前言:
目前各位老铁们对“mysql监控锁表”可能比较珍视,大家都想要学习一些“mysql监控锁表”的相关资讯。那么小编也在网络上收集了一些关于“mysql监控锁表””的相关内容,希望咱们能喜欢,看官们一起来了解一下吧!专注于Java领域优质技术,欢迎关注
在调用存储过程中,就会涉及到表锁,行锁这一概念:所谓区别:有索引的时候就是行锁,没有索引的时候就是表索。
innodb 的行锁是在有索引的情况下,没有索引的表是锁定全表的.
表锁演示(无索引)
Session1:
Session2:
mysql> update innodb_test set name='sjis' where id = 1 ;
处于等待状态....
再回到session1 commit以后,session2就出来结果了(锁定了8秒,过了8秒左右才去session1提交)。
mysql> update innodb_test set name='sjis' where id = 1 ;Query OK, 1 row affected (8.11 sec)Rows matched: 1 Changed: 1 Warnings: 0
实验结果是:我在session1的for update 操作看似只锁定ID为2的行其实锁定了全表,以至于后面session2的对ID为1的行update 需要等待Session1锁的释放。
行锁演示(索引为ID)
Session1:
Session2:
实验结果:这次的锁定是锁定的行,所以没有被锁定的行(ID不为2的行)可以进行update..
标签: #mysql监控锁表