如果您创建一个包含多个列的索引,或者您是否应该为每个列创建一个索引,是否存在任何性能问题?
发布于 2011-06-30 22:49:04
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,如插入、更新和删除。因为MySQL必须在内部维护指向实际数据文件中插入行的“指针”,所以在上述写入查询的情况下需要付出性能代价,因为每次记录改变时,索引都必须更新。但是,您可能能够以不会导致非常明显的性能下降的方式编写查询。
发布于 2011-06-30 22:48:28
多列索引本身并没有什么问题--它完全取决于如何查询数据。如果你在colA+colB上有一个索引,它会对像where colA='value'和colA='value' and colB='value'这样的查询有帮助,但对像colB='value'这样的查询没有帮助。
https://stackoverflow.com/questions/6536544
复制相似问题