读取的MySQL docs我们看到多列索引name
此示例表:如果我按不同顺序使用列,MySQL会使用多列索引吗?
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)
);
它与其中案件索引会或不会被利用的例子说明。例如,将用于这样的查询:
SELECT * FROM test
WHERE last_name='Widenius' AND first_name='Michael';
我的问题是,它会为这个查询工作(这是实际上是相同的):
SELECT * FROM test
WHERE first_name='Michael' AND last_name='Widenius';
我找不到任何词关于这个在文档中 - MySQL是否尝试交换列以找到合适的索引,还是完全取决于查询?
你为什么不只是运行一个测试,找出? – arkascha
@arkascha也许它可能适用于某些存储引擎,而不适用于其他人。也许在服务器/数据库/表配置上还有其他隐藏的依赖。我无法测试所有可能的配置... –
我很确定测试的顺序没有区别。 – Barmar