免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2529 | 回复: 0

【讨论中】mysql lock table和select for update 死锁问题 [复制链接]

论坛徽章:
4
双子座
日期:2014-08-28 10:08:002015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:58:112015年亚洲杯之阿联酋
日期:2015-03-13 03:25:15
发表于 2013-04-10 16:26 |显示全部楼层
本帖最后由 cenalulu 于 2013-04-11 10:03 编辑

之前的代码里面做事务采用的是
lock table xxx write

do somethingselect xxx  
delete  xxx
update  xxx
unlock tables

后来优化了一下,采用

begin

select xxx  for update
delete  xxx
update  xxx

commit

上线后这两种锁表方式都存在,因为前面一种lock table的代码没有完全修改掉,
等到业务流量上来的时候,发现大量的死锁情况,这里我知道lock table和事务锁的地方不一样,但是都是锁,为什么不是老老实实每个请求排队呢?  死锁的原因是什么?

单独使用lock table 或者事务都没有问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP