2012-05-27 51 views
2

我在某處讀到mysql的列順序很重要。我相信他們指的是索引欄。在MySQL中列命令是否重要?

問題:如果列順序很重要,何時和爲什麼它很重要?

我問的原因是因爲我有一個類似於下面的表中的mysql表。 主索引在左邊,我在最右邊有一個索引。這不好嗎? 這是一個MyISAM表,主要用於選擇(不插入,刪除或更新)。

----------------------------------------------- 
| Primary index | data1| data2 | d3| Index | 
----------------------------------------------- 
|  1   | A | cat | 1 | A | 
|  2   | B | toads | 3 | A | 
|  3   | A | yabby | 7 | B | 
|  4   | B | rabbits | 1 | B | 
----------------------------------------------- 
+0

我無法想象訂單的重要性。它可能在低層次上很重要,但是DBMS可以優化它,所以你永遠不必擔心這樣的事情。我想看到一個權威的答案,雖然 – Oleksi

回答

3

列順序只在定義索引時很重要,因爲這會影響索引是否適合用於執行查詢。 (所有的RBDMS都是如此,而不僅僅是MySQL)

例如

以該順序在列MyIndex(a, b, c)上定義的索引。

的查詢,如

select a from mytable 
where c = somevalue 

可能不會使用索引來執行查詢(取決於幾個因素,如行數,列選擇性等)

然而,它很可能會選擇使用定義爲MyIndex2(c,a,b)

更新:請參閱use-the-index-luke.com(感謝格雷格)。

+0

這是正確的,閱讀http://use-the-index-luke.com/有關它的一些相關信息。 – gcochard

+0

所以,如果我正確地理解這一點,當索引應用於多列(組合索引)時,列的順序很重要。在我上面的索引只在一列上的示例中,它不應該是一個問題。這聽起來正確嗎? – TryHarder

+0

是......................... –

相關問題