Mysql - 索引性能

时间:2011-06-30 14:41:57

标签: mysql

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

2 个答案:

答案 0 :(得分:3)

多列索引没有任何内在错误 - 它完全取决于您将如何查询数据。如果你有colA + colB的索引,它对where colA='value'colA='value' and colB='value'之类的查询有帮助,但对colB='value'之类的查询没有帮助。

答案 1 :(得分:0)

Advantages of MySQL Indexes

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

Query optimization:索引可以更快地搜索查询。

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

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

Disadvantages of MySQL indexes

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

首先是indexes take up disk space。通常空间使用率并不重要,但由于在每个可能的组合中的每个列上创建索引,索引文件将比数据文件快得多。如果表的表大小很大,索引文件可能会达到操作系统的最大文件大小。

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