(1)索引失效行锁变表锁
建立2个索引
索引是失效后,系统性能会变查,如果涉及到锁的话,行锁会变表锁
有一个问题,当session1用b字段做查询条件因为是varchar类型,需要加双引号,但是没有加,MySQL底层会做类型转换,导致这个字段建立的索引失效,此时session2在更新别的行,会出现阻塞,是因为:行锁变成了表锁
session1提交后session2才能读取到:
然后session2再提交(commmit)就能获取到最新数据:
如果session2的字段值没有写错:
session2提交后在查询:可以获取更新的数据:
(2)间隙锁危害
比如session1曹锁1-6的数据,中间没有2,在session2中插入2的这条数据,按理说这两边是不想管的,不会影响,但是session2回车后会阻塞
session1提交后,session2才能完成插入操作:
session2提交后,session1在点击查看
(3)如何锁定某一行
session1给8号上锁后,没有提交之前,session2没有上锁
(4)行锁总结