讀取的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