mysql like % 为什么会用上索引

SELECT

*

FROM table t

WHERE 1=1

and t.name like '%丁%'

ORDER BY t.id

LIMIT 0, 10

table表中有46万数据,但是解释执行计划中扫描行数很少而且也用上了索引,并且实际效果执行也很快
mysql like % 为什么会用上索引

回答:

执行计划贴出来

回答:

mysql like % 为什么会用上索引

回答:

@沉默的背影: 还有表结构,索引信息

回答:

@czd890: mysql like % 为什么会用上索引

name是btree索引,(id,cust_vendor_flag)是联合主键
mysql like % 为什么会用上索引

回答:

@沉默的背影: https://www.cnblogs.com/Howinfun/p/12449975.html

回答:

@czd890:

我的疑惑不在于为什么能用上索引,能用上索引主要原因应该就是您发的帖子中说的扫描的是主键索引

执行速度快我觉得也没什么问题,因为我不用id排序,直接name like %丁%速度也不慢

我的疑惑在于为什么扫描行数explain只有10rows,应该是全表扫才对呢?

回答:

@沉默的背影: 因为走索引了呀, 索引里面匹配到limit的10行后, 在执行的 select *

回答:

@czd890: 哦 我明白了 rows应该是被limit这个语句影响了 实际扫描行数还是很多的

以上是 mysql like % 为什么会用上索引 的全部内容, 来源链接: utcz.com/a/120559.html

回到顶部