不再以技术的角度思考问题
2018-06-12 21:35
274 查看
最近遇到一个问题,deadLock(死锁),由于mysql的事务导致的死锁,本事这个bug不是问题,关键是解决问题的过程比较有意思。
1、收到问题之后,我这先看了,mysql 的日志,然后各种分析重现问题,结果浪费两天时间,只是知道问题原因在那。给出的解决方案如下:1)、找到死锁的代码,调整执行顺序。2)把整个大的事务拆成小的事务,应为那块代码太繁杂了。总之,问题没有得到很好的解决。
2、咨询A同事:你这个业务场景不应该用这样的代码,应该用redis incr 。
3、咨询B同事:详细的聊了一下mysql死锁的原因,因为业务逻辑复杂,最终没有结论。
4、咨询C同事:详细的说了业务流程,(省略100字)。把我们频繁的数据库操作,在java代码层实现,最后更新数据库,避免频繁更新数据库造成死锁。
最开始,我不感觉这是一个好的方案,只是尽可能回避了死锁,没有最终解决死锁。后来仔细想象,发现这个是目前最靠谱的办法:
1)改动最小。
2)虽然没有最终解决死锁,但是回避了死锁。数据量不大的话,那么问题是解决了。
最后,我问自己一个问题,当出现问题,第一时间应该怎么处理。
1、收到问题之后,我这先看了,mysql 的日志,然后各种分析重现问题,结果浪费两天时间,只是知道问题原因在那。给出的解决方案如下:1)、找到死锁的代码,调整执行顺序。2)把整个大的事务拆成小的事务,应为那块代码太繁杂了。总之,问题没有得到很好的解决。
2、咨询A同事:你这个业务场景不应该用这样的代码,应该用redis incr 。
3、咨询B同事:详细的聊了一下mysql死锁的原因,因为业务逻辑复杂,最终没有结论。
4、咨询C同事:详细的说了业务流程,(省略100字)。把我们频繁的数据库操作,在java代码层实现,最后更新数据库,避免频繁更新数据库造成死锁。
最开始,我不感觉这是一个好的方案,只是尽可能回避了死锁,没有最终解决死锁。后来仔细想象,发现这个是目前最靠谱的办法:
1)改动最小。
2)虽然没有最终解决死锁,但是回避了死锁。数据量不大的话,那么问题是解决了。
最后,我问自己一个问题,当出现问题,第一时间应该怎么处理。
相关文章推荐
- 15个IT技术人员必须思考的问题
- 思考问题的角度
- 【笔记】从技术角度思考Hadoop
- Linux内核分析:页回收导致的cpu load瞬间飙高的问题分析与思考--------------蘑菇街技术博客
- 投资人的能量往往大多远远不仅于此,他能站在不同的角度和高度看问题(要早点拿投资,要舍得让出股份)——最好不要让 Leader 一边做技术、一边做管理,人的能力是有限的,精力也是有限的
- 学生和老师思考问题角度的区别
- PHPer ,如果总是从技术角度考虑问题注定要失败的
- 从问题角度来思考设计模式(3) - 行为编
- [学习笔记]王家林老师:从技术角度思考Hadoop到底是什么
- 于狼人杀角度思考中国的站队问题
- 我在思考一个问题:用纯dhtml技术来实现信息交流平台的应用.
- 思考问题的角度
- 换角度思考问题
- 在举国哀悼之日,我仅技术角度分析开心网暂停游戏后恢复存在的问题
- 15个IT技术人员必须思考的问题
- 一个想法(续二):换个角度思考如何解决IT企业招聘难的问题!
- 如果你是IT技术人员,请思考这15个问题
- 关于mysql安装出现问题及反思(无技术,纯思考)
- Javascript:从一个快速布道技术角度看问题
- 换个角度 思考问题