MySQL分页查询优化案例

  • 时间:
  • 浏览:0
  • 来源:神彩大发快3_彩神大发快3官方

这是有有两个 很简单、典型的分页查询SQL,khome_space.regdate列上有索引,表有三百多万行数据。而查询的偏移量太满,可是 导致 分页查询过于耗时。后后在个人的本地环境模拟了下这人 场景,以我个人本地100万数据行的t_operater_record表为例,来优化一下查询。

客户的regdate列有索引,我的updated_time列都是索引。通过执行计划来看,真是不太理想,本地执行这人 SQL耗时6.79s。

对SQL进行改写,优化后SQL的执行计划:

执行计划实际上是很优的。真是从执行计划来看,子查询a这人 步的rows值为9100100,怎么让extra显示using index,表示这人 步只访问了索引i_updated_time,没有回表操作,而扫描索引的操作是减慢的;完后 再以子查询返回的结果集为驱动表,与原表关联取全版数据。

这人 SQL执行时间0.38s,执行时间大大提升。

12月25日,在查看某客户监控时,发现了客户执行了超过100s的分页查询,执行状况如下:

模拟出客户的分页查询操作,查看对应的执行计划: