首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL索引-最佳实践是什么?

MySQL索引-最佳实践是什么?
EN

Stack Overflow用户
提问于 2010-06-16 05:39:08
回答 7查看 93.3K关注 0票数 230

我在我的MySQL数据库上使用索引已经有一段时间了,但是从来没有正确地学习过它们。通常,我会使用WHERE子句将索引放在要搜索或选择的任何字段上,但有时看起来并不是那么黑白分明。

MySQL索引的最佳实践是什么?

示例情况/困境:

  • 如果一个表有六列,并且所有列都是可搜索的,我应该为它们全部编制索引,还是不编制索引?
  • 编制索引的负面性能影响是什么?
  • 如果我有一个可从网站的某些部分进行搜索的VARCHAR2500列,我应该为它编制索引吗?
EN

Stack Overflow用户

发布于 2010-06-16 05:47:25

高效地加载数据:索引加快了检索速度,但减慢了插入和删除操作,以及索引列中值的更新。也就是说,索引会降低大多数涉及写入的操作的速度。之所以会发生这种情况,是因为写入行不仅需要写入数据行,还需要更改任何索引。表的索引越多,需要进行的更改就越多,平均性能降级也就越大。大多数表都会收到很多读操作和很少的写操作,但是对于写入百分比很高的表来说,索引更新的开销可能会很大。

避免索引:如果您不需要特定的索引来帮助查询更好地执行,请不要创建它。

Disk Space:一个索引占用磁盘空间,多个索引相应占用更多空间。与没有索引相比,这可能会使您更快地达到表大小限制。尽可能避免索引。

外卖:不要过度索引

票数 13
EN
查看全部 7 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3049283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档