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


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

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

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

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM