无索引行锁升级为表锁
如果不通过索引条件检索数据,那么InnoDB将对表中的所有记录加锁,实际效果跟表锁一样。
查看当前表的索引 : show index from test_innodb_lock ;
Session-1 | Session-2 |
---|---|
关闭事务的自动提交 | 关闭事务的自动提交 |
执行更新语句 : | 执行更新语句, 但处于阻塞状态: |
提交事务: | 解除阻塞,执行更新成功 : |
执行提交操作 : |
由于 执行更新时 , name字段本来为varchar类型, 我们是作为数组类型使用,存在类型转换,索引失效,最终行锁变为表锁 ;