MySQL有多种索引类型?

时间:2010-11-09 16:11:41

标签: mysql

我注意到在PHPMyAdmin中我可以单独索引列,或者我可以使用复选框选择字段然后单击索引,它们以不同的方式编入索引。这是否意味着如果对于给定的表我有2列该表将每行定义为唯一(而不仅仅是一个简单的单列id`)我应该将它们编入索引以提高性能?

1 个答案:

答案 0 :(得分:4)

多列索引可以被视为一个排序数组,其中包含通过连接索引列的值而创建的值。

MySQL使用多列索引,以便在WHERE子句中为索引的第一列指定已知数量时查询很快,即使您没有为其他列指定值。

如果您有两列名为last_namefirst_name并且您创建了索引INDEX name (last_name,first_name),则该索引可用于指定last_name的已知范围内的值的查询,或者last_name和first_name。

来源:http://dev.mysql.com/doc/refman/5.0/en/multiple-column-indexes.html

因此,在您的特定情况下,它可能没有帮助。如果您想查询后面的列(例如:SELECT * FROM test WHERE first_name='Michael'SELECT * FROM test WHERE last_name='Widenius' OR first_name='Michael),则不会使用索引,查询会更慢。