美文网首页MySQL(总)MySQL索引
左通配符和高limit值的优化--延迟关联

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

作者: 飞翔的Tallgeese | 来源:发表于2019-01-16 15:46 被阅读0次

使用场景

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  也就是说走的是主键的覆盖索引

相关文章

网友评论

    本文标题:左通配符和高limit值的优化--延迟关联

    本文链接:https://www.haomeiwen.com/subject/olpmdqtx.html