本文主要是介绍mysql中的行锁注意事项,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
如果操作中没有用到索引,则行锁会被转为表锁。
首先我们启动两个会话(0/1),分别关闭自动提交机制(mysql默认是自动提交)
这里我准备了1张表t_emp,
当前表没有建立索引(主键索引除外)
开始操作。
首先在会话0窗口执行一条update语句
然后在会话1中执行一条update语句
(左0右1)
我们发现,会话1窗口中执行阻塞了。
直到会话0窗口commit提交了。会话1窗口正常执行
接下来我们为该表建立索引,加准验证结论!
create index ind_emp_name on t_emp(name);
同样现在会话0执行update语句
再在会话1执行update语句
我们发现,会话1并没有执行阻塞
结论:
如果操作中没有用到索引,则行锁会被转为表锁。
当然如果索引失效,那么依然行锁会被转为表锁
这篇关于mysql中的行锁注意事项的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!