首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL不必要的索引

MySQL不必要的索引
EN

Stack Overflow用户
提问于 2012-08-16 20:57:09
回答 1查看 185关注 0票数 1

如果我有这个索引:

(col1、col2、col3)

我知道,当我搜索(col1);(col1,col2);(col1,col2,col3)时,它会有所帮助。

如果我用完全相同的列创建另一个索引,phpMyAdmin将警告我,其中一个索引可能会被删除,因为它们是相同的。

但是,如果我有以下索引:

(col1、col2、col3)

(col1,col2)

(col1)

phpMyAdmin一点也不警告我。

所以我的问题是,是最后两个索引在任何情况下都是必需的吗?我认为只有第一个指数是足够的

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-16 21:06:12

MySQL将只使用一个索引(最左边)来优化搜索。引用文件的话:

"http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html

但是,如果任何索引都是唯一的,那么很可能有一个很好的理由让它们存在。

如果您在分析过程中发现,除了其他列之外,还经常使用任何列,那么您应该考虑为每个列添加单独的索引,以优化这些查询。

例如。

代码语言:javascript
复制
ALTER TABLE tablename ADD INDEX (col1), ADD INDEX (col2), ADD INDEX (col3);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11995310

复制
相关文章

相似问题

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