索引明明建了却没生效
大部分是因为查询写法让优化器用不上它。
最常见的三种
在索引列上套了函数,比如对字段做格式化之后再比较,索引就用不上。
模糊匹配以通配符开头,排序方式与索引顺序不一致。
怎么确认
查询计划会直接告诉你走了哪条路径。执行计划里出现全表扫描时,就该检查上面的几种写法。
复合索引的顺序
复合索引遵循最左前缀。建索引时把选择性高、且经常用于等值过滤的列放在前面,能覆盖更多查询。
索引也不是越多越好
每个索引都会拖慢写入并占用空间。定期检查没被使用过的索引,删掉它们。
大部分是因为查询写法让优化器用不上它。
在索引列上套了函数,比如对字段做格式化之后再比较,索引就用不上。
模糊匹配以通配符开头,排序方式与索引顺序不一致。
查询计划会直接告诉你走了哪条路径。执行计划里出现全表扫描时,就该检查上面的几种写法。
复合索引遵循最左前缀。建索引时把选择性高、且经常用于等值过滤的列放在前面,能覆盖更多查询。
每个索引都会拖慢写入并占用空间。定期检查没被使用过的索引,删掉它们。