一般大家添加索引时都简单考虑些什么?为什么会需要2个字段的索引?
一般大家添加索引时都考虑些什么?
我一般添加索引就是where子句查询几个字段,哪些字段,就添加什么索引。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
一般大家添加索引时都考虑些什么?
我一般添加索引就是where子句查询几个字段,哪些字段,就添加什么索引。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
where条件有什么字段就加什么索引,就有点盲目了。关于索引设计已经有几本书了,三言两语说不清,列举几点:
1.考虑列值分布,如果选择性不好,那么建索引很有可能不起效,只会增加DML开销;
2.覆盖索引,避免回表,直接从索引取得查询结果,就是你的做法,但如果每一个SQL都给它建覆盖索引,要考虑一下过多索引给DML带来的压力,以及索引的冗余;
3.注意频繁更新的表,索引不宜过多;
4.根据表数据量和执行计划来设计索引
...
建了索引之后,也应该注意SQL的写法是否导致了索引失效,例如类型不匹配,索引列做函数处理或运算,%前缀通配,没包含多列索引的前导列等等。