Mysql主库还索引_mysql备库和主库同步有延迟的问题是缺少索引引起的

3S0DAAAAik1RBTG8TMEMghi5K8QgRhypMZ1unHeqx9RrQF25cwnIxJGCCbUREAAAAACAgsqJkSsl+ky+AfUlU6K6VI8pgCGFGMAQAhgAAAAAaktR9sQoZJpyLlmh98Qo5V4YAAAAAIDoFGVPjEKmKecSbwAAAAAAoAo9MQAAAAAAQEGgJwYAAAAAACgIBDEAAAAAAEBBIIgBAAAAAAAKAkEMAAAAAABQEAhiAAAAAACAgkAQAwAAAAAAFASCGAAAAAAAoCAQxAAAAAAAAAWBIAYAAAAAACgIBDEAAAAAAEBBIIgBAAAAAAAKAkEMAAAAAABQEAhiAAAAAACAgkAQAwAAAAAAFISy7777rqJJs82CYpVjj+oW3AMAAAAAAIiHlEEMAAAAAACAuGE4CQAAAAAAKAgEMQAAAAAAQEEgiAEAAAAAAAoCQQwAAAAAAFAQCGIAAAAAAICCQBADAAAAAAAUBIIYAAAAAACgIBDEAAAAAAAABYEgBgAAAAAAKAgEMQAAAAAAQEEgiAEAAAAAAAoCQQwAAAAAAFAQCGIAAAAAAICCQBADAAAAAAAUBIIYAAAAAACgIBDEAAAAAAAABYEgBgAAAAAAKAgEMQAAAAAAQEEgiAEAAAAAAAoCQQwAAAAAAFAQCGIAAAAAAICCQBADAAAAAAAUBIIYAAAAAACgAJj9f0k6YQNBEYrsAAAAAElFTkSuQmCC

昨天下午14:00,14:30,15:00和15:30,共出现4次从库179和主库有延迟的情况,延迟时间平均在50s左右。

在出现问题时,管理员登陆数据库服务器,通过show processlist发现从库179在顺序执行类似如下的语句:

UPDATE salesrule_coupon SET product_name='sss150307',order_amount='200000.0000'  WHERE orderid='77585'

经分析,14:00,14:30,15:00和15:30这四个时间段,每分钟有大概有50条这样的update语句需要从库一个一个顺序执行,并且每条update完成时间需要1s。这样就出现了如下的现象,从库执行50条update语句就需要50s的时间,所以造成从库179和主库延迟(主库执行50条update语句可能是瞬间就能完成,因为主库的是多线程进行update,从库是单线程的)。

最后发现每条update需要1s的原因是由于走的全表扫描(explain select * from salesrule_coupon where orderid=77884发现  ),在表salesrule_coupon的orderid字段添加索引后解决。

alter table salesrule_coupon add index idx_salesrule_coupon_orderid (orderid);

这样,在执行update语句,每条仅需0.03s完成。

这是目前发现的原因,如果后期再有数据库延迟,继续观察分析。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值