mysql锁表问题分析以及解决方法-简书

项目坑有千千万,我们静下心来还是可以找到解决办法的
最近接了一个由供应商留下来的项目,正是周末休息时间突然一个电话说功能用不了,翻看日志发现是业务功能的表被锁了,我就奇了怪了,天天没事,突然周末来使儿。一番了解才发现那个锁表情况是天天都有的,但是一直没找到原因,所以DBA运维同事天天充当定时删除机器,每天早上清除锁表进程,丢失的数据也手动补录,厉害了,这就是供应商做的项目吗?烂到这个层度(吐槽一番)
回到正题,我们来聊一聊我的解决步骤

1、首先得了解数据库的事务机制
      一个完整的事务会包含
SET autocommit=0事务开启
commit 提交事务 / rollback回滚事务
SET autocommit=1 关闭事务
2、查看日志分析事务是否完整,不完整的地方就可能是锁表语句出现的地方
3、分析代码,定位到出问题的代码进行分析
一般会有这几种问题导致死锁:
1)在同一个事务里面,同时对表中得数据进行增删改查
2)请求操作未提交的长事务里面的表导致表死锁
这两种情况都得修改代码,终止是将长事务拆分成短事务
                           项目上遇到的正式案例以及解决思路
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容