首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL索引:拥有多个索引还是拥有一个多字段键?

问MySQL索引:拥有多个索引还是拥有一个多字段键?
EN

Stack Overflow用户
提问于 2010-07-30 02:40:54
回答 2查看 3.4K关注 0票数 6

当我在MySQL中手动创建表时,我为我认为将用于查询的每个字段一次添加一个索引。

当我使用phpMyAdmin为我创建表,并在create-table表单中选择我的索引时,我看到phpMyAdmin将我的索引组合成1(加上我的主索引)。

有什么关系呢?一个比另一个好吗?在哪种情况下?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-30 02:45:05

这实际上取决于您的查询。有些查询能更好地利用多列索引,有些则不然。解释是你的朋友。

http://dev.mysql.com/doc/refman/5.6/en/explain.html

这里还有一个非常好的资源:

http://dev.mysql.com/doc/refman/5.6/en/optimization-indexes.html

票数 8
EN

Stack Overflow用户

发布于 2010-07-30 02:45:51

这两种策略都不是特别好的策略,但如果必须选择的话,我会选择多个单一索引。

原因是,只有在使用索引的任何完整前缀中的所有字段时,才能使用索引。如果您有一个索引(a,b,c,d,e,f),那么这对于过滤a的查询或者同时过滤a和b的查询都很好,但是对于只过滤c的查询就没有用了。

对于选择最好的索引,没有简单的规则。您需要查看正在进行的查询类型,并选择能够加快这些特定查询速度的索引。如果仔细考虑列的顺序,就会发现少量的索引对多个不同的查询很有用。例如,如果在一个查询中同时过滤a和b,而在另一个查询中只过滤b,那么(b,a)上的索引将可供这两个查询使用,但索引an (a,b)将不可用。

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

https://stackoverflow.com/questions/3365901

复制
相关文章

相似问题

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