首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql -索引性能

Mysql -索引性能
EN

Stack Overflow用户
提问于 2011-06-30 22:41:57
回答 2查看 336关注 0票数 0

如果您创建一个包含多个列的索引,或者您是否应该为每个列创建一个索引,是否存在任何性能问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-30 22:49:04

代码语言:javascript
复制
Advantages of MySQL Indexes

一般来说,MySQL索引到数据库有三个优点:

Query optimization:索引使搜索查询变得更快。

Uniqueness:像主键索引和唯一索引这样的索引有助于避免重复的行数据。

Text searching:全文索引在MySQL版本3.23.23中,用户有机会针对任何字段中的大量文本进行优化搜索。

代码语言:javascript
复制
Disadvantages of MySQL indexes

当在列上创建索引时,MySQL还会创建一个排序的separate file,并且只包含您感兴趣的排序字段。

首先是indexes take up disk space。通常空间使用量不大,但由于在每种可能的组合中为每一列创建索引,因此索引文件的增长速度将比数据文件快得多。在表很大的情况下,索引文件可能会达到操作系统的最大文件大小。

其次,索引slow down the speed of writing queries,如插入、更新和删除。因为MySQL必须在内部维护指向实际数据文件中插入行的“指针”,所以在上述写入查询的情况下需要付出性能代价,因为每次记录改变时,索引都必须更新。但是,您可能能够以不会导致非常明显的性能下降的方式编写查询。

票数 0
EN

Stack Overflow用户

发布于 2011-06-30 22:48:28

多列索引本身并没有什么问题--它完全取决于如何查询数据。如果你在colA+colB上有一个索引,它会对像where colA='value'colA='value' and colB='value'这样的查询有帮助,但对像colB='value'这样的查询没有帮助。

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

https://stackoverflow.com/questions/6536544

复制
相关文章

相似问题

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