索引对更新语句速度影响很大

  背景:服务器cpu报警,5分钟内3次超过30%。当时,公司管理产品的同事正通过我们提供的程序对上传的数据做处理。

  原本一分钟能处理10000条数据的,突然变成一分钟只能处理100左右。对每个数据操作时间进行排查发现,更新操作的时间是0.6s,从这个时间推算,差不多一分钟就只能处理100条左右。

  但是之前为什么能处理那么多呢?原来今天刚运行的数据是修改数据的操作。然后发现修改所依据的字段不是主键,也没有加索引。马上对它建立索引,再次运行,发现增加到1000条,并没有到10000条级别。折腾了很久,发现是刚发现cpu过高时,给代码设置的usleep时间是0.1s,每跑完一条休息0.1s,自然是只能差不多1000条了。最后把这个去掉之后就又正常了。

  更新时where语句中的条件字段一定要加索引,尤其是大批量的数据更新。本例中,没有将主键作为条件字段,这也是一个原因。

转载于:https://www.cnblogs.com/yangcclg/p/6000064.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值