mysql请求超时问题

问题

  • 由于有一批数据要进行处理,数据量过大,我们在后台开启了多个线程进行跑,但是每次跑的时候,数据都没有达到一致性,而且后台报错。

解决问题

  • 原因
    • 因为事务的等待时间过长,导致的报错
  • 解决
    • show variables like '%timeout%';
    • 这里写图片描述
    • 查看 innndb_lock_wait_timeout 变量修改的大一点?
    • set innndb_lock_wait_timeout =100;

解决问题?

  • 我们在进行跑的时候,确实报超时请求的数量少了,保证了大量的数据的正确性,等了半个小时(数据量多,而且要做逻辑处理)。到数据里面去看的时候,我去,发现数据还是不一致,不对啊,如果出现报错的话,应该是要进行事务回滚的啊,不应该出现这个问题的啊!
  • 最后请教了一个贾大神(是真大神只是姓有点怪..),是这个问题:innodb_rollback_on_timeout=OFF,OFF的意思是在一个事务里面,如果一条sql等待超时的话,会回滚这一条sql,但是整个事务不会回滚,继续执行。ON的意思是如果有超时等待话,整个事务会进行回滚! mysql 默认为OFF,坑了。
  • 解决:将innodb_rollback_on_timeout这个置为on,在mysql.conf文件中进行改变。重启mysql,OK!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值