SELECT
*
FROM table t
WHERE 1=1
and t.name like '%丁%'
ORDER BY t.id
LIMIT 0, 10
table表中有46万数据,但是解释执行计划中扫描行数很少而且也用上了索引,并且实际效果执行也很快
执行计划贴出来
@沉默的背影: 还有表结构,索引信息
@czd890:
name是btree索引,(id,cust_vendor_flag)是联合主键
@czd890:
我的疑惑不在于为什么能用上索引,能用上索引主要原因应该就是您发的帖子中说的扫描的是主键索引
执行速度快我觉得也没什么问题,因为我不用id排序,直接name like %丁%速度也不慢
我的疑惑在于为什么扫描行数explain只有10rows,应该是全表扫才对呢?
@沉默的背影: 因为走索引了呀, 索引里面匹配到limit的10行后, 在执行的 select *
@czd890: 哦 我明白了 rows应该是被limit这个语句影响了 实际扫描行数还是很多的