我知道索引的重要性以及连接顺序对性能的影响。我已经阅读了很多关于多列索引的相关内容,但没有找到我的问题的答案。
我想知道如果我创建一个多列索引,它们指定的顺序是否有任何影响。我猜想它不会有影响,引擎会将它们视为一组,其中顺序不重要。但我想验证一下。
例如,从MySQL网站上(http://dev.mysql.com/doc/refman/5.0/en/multiple-column-indexes.html):
CREATE TABLE test (
id INT NOT NULL,
last_name CHAR(30) NOT NULL,
first_name CHAR(30) NOT NULL,
PRIMARY KEY (id),
INDEX name (last_name,first_name)
);
在任何情况下,以下内容是否更好一些,或者它们等价无异?
CREATE TABLE test (
id INT NOT NULL,
last_name CHAR(30) NOT NULL,
first_name CHAR(30) NOT NULL,
PRIMARY KEY (id),
INDEX name (first_name,last_name)
);
具体来说:
INDEX name (last_name,first_name)
对抗
INDEX name (first_name,last_name)
VARCHAR
,而不是CHAR
(除非名称始终恰好为30个字符)。 - Rick James