一般大家添加索引时都考虑些什么?我一般添加索引就是where子句查询几个字段,哪些字段,就添加什么索引。
1 回答
慕运维8079593
TA贡献1876条经验 获得超5个赞
where条件有什么字段就加什么索引,就有点盲目了。关于索引设计已经有几本书了,三言两语说不清,列举几点:
1.考虑列值分布,如果选择性不好,那么建索引很有可能不起效,只会增加DML开销;
2.覆盖索引,避免回表,直接从索引取得查询结果,就是你的做法,但如果每一个SQL都给它建覆盖索引,要考虑一下过多索引给DML带来的压力,以及索引的冗余;
3.注意频繁更新的表,索引不宜过多;
4.根据表数据量和执行计划来设计索引
...
建了索引之后,也应该注意SQL的写法是否导致了索引失效,例如类型不匹配,索引列做函数处理或运算,%前缀通配,没包含多列索引的前导列等等。
添加回答
举报
0/150
提交
取消