mysql中大事物提交延迟问题及解决方法

在mysql主从复制中,如果主库存在大事物提交,从库则可能会延迟,所以在主库执行的事物尽量使用小事物,下面举一个例子:

,udate


主库:

insert into t1(id,name,title,cdate,udate) select id2,name2,tile2,cdate2,udate2 from t2 where id2>xxxx and cdate <'2017-xx-xx xx:xx:xx';


上面的一个sql,如果在查询阶段很慢,或者查询出数据很多,主库执行这个就不会很快,如果主库执行需要1分多钟,从库就也可能是1分多,甚至如果从库配置较低,就可能更长时间。怎么解决呢?就是通过缩小事物。

第一种:限制查询出的数据,从而限制插入数据

insert into t1(id,name,title,cdate,udate) select id2,name2,tile2,cdate2,udate2 from t2 where id2>xxxx and cdate <'2017-xx-xx xx:xx:xx' and id2 not in (select id from t1)limit 10000;


注意:这种方法比较慢,且查询数据随着不断插入,存在不稳定性。


第二种:通过条件导出需要的insert sql.

SELECT concat('insert into t1(id,name,title,cdate,udate) values(',id2,',',name2,',',cdate2,',',udate2)  from t2 where id2>xxxx and cdate <'2017-xx-xx xx:xx:xx' ;


通过第二种方法可以和好的避免延迟问题,也可以很快的完成任务。






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值