首页 > 数据库技术 > 详细

sql索引优化错误问题

时间:2020-05-19 21:13:17      阅读:46      评论:0      收藏:0      [点我收藏+]

  本周优化的sql索引,发到线上后发现反而查询效率变低了,仔细研究后发现索引选择器还是选择错误了。

  sql语句:where语句使用了主键id>?和时间索引mtime > ? and mtime < ?

  1、修改之前:使用强制索引force index,指定了mtime

  慢查询的原因:脚本第一次查询使用mtime索引确实正确,但是第一次查询后会将主键id查到,然后根据主键id去查,但是强制索引了时间后,每一次都循环了一天的数据去查,导致后面的效率变慢

 

  2、本次修改:使用强制索引force index,指定了mtime和primary

  慢查询的原因:脚本第一次查询时,mysql索引选择器选择了primary,而没有使用mtime,索引使用只能使用一个,因此第一次查询时id>0,就扫描了全表,导致效率很慢

 

  3、第二次优化修改:当第一次循环,id>0时,强制索引为mtime,后面第二次及以后,有了id后,则强制索引变为primary,这样就能使索引利用率最大

sql索引优化错误问题

原文:https://www.cnblogs.com/xingyuecanxue/p/12919401.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!