MySQL(总)MySQL索引

左通配符和高limit值的优化--延迟关联

2019-01-16  本文已影响0人  飞翔的Tallgeese

使用场景

1.存在无法走索引的左通配符的模糊查询

2.高偏移值(limit)的查询

优化案例

eg.

原语句

SELECT * FROM t 

WHERE

settle_serial_no LIKE '%xxxxxx%'

ORDER BY id DESC

limit 10000,5000 ;

执行时间:3.449s;执行计划如下图

采用延迟关联对原语句进行修改

SELECT * FROM t as a

JOIN 

( SELECT id FROM t WHERE settle_serial_no LIKE '%xxxxxx%' order by id desc limit 10000,5000) as b 

ON a.id = b.id ;

执行时间:0.91s;执行计划如下图

如果这个语句中没有limit条件的话,第二图执行计划里面会直接没有第一行,然后蓝框处会显示为using where;using index  也就是说走的是主键的覆盖索引

上一篇下一篇

猜你喜欢

热点阅读