假设我在数据库中的名称字段上有索引。我记得如果我这样做的话,请阅读:
where name like 'Jon%'
它仍会使用索引,
但如果我这样做
where name like '%Jon%'
然后它无法使用索引,因此会导致全表扫描
如果我使用
where name like '__Jon%'
是否可以使用索引,还是必须使用完整扫描,因此下划线与响应时间的百分号一样差?
答案 0 :(得分:0)
正如Michael Berkowski所指出的,官方文件指出:The index also can be used for LIKE comparisons if the argument to LIKE is a constant string that does not start with a wildcard character.
所以任何类型的通配符都将消除索引的使用,而_
是一个通配符。
这里有一些快速屏幕截图解释了使用/不使用索引的解释查询: