2010-05-27 50 views
2

我正在寫一個網頁,確實非常簡單的搜索查詢,結果是這樣的:實際上會使用多少個索引?

SELECT * FROM my_table WHERE A in (a1, a2, a3) AND B in (b1, b2) AND C in (c1, c2, c3, c4) AND 

等了列的變量數,通常〜5。如果我爲每列創建一個單獨的索引(一個用於A,一個用於B,一個用於C,而不是(A,B,C)),是否將在上面的查詢中使用它們?

回答

3

優化器將嘗試使用Index Merge操作並使用三個索引。

EXPLAIN之前執行語句以查看它可以使用的索引,並使用它。考慮FORCE INDEX,看看它是否有所作爲。

EXPLAIN SELECT * FROM my_table WHERE A in (a1, a2, a3) AND B in (b1, b2) AND C in (c1, c2, c3, c4) AND 
0

只是檢查:

EXPLAIN SELECT * FROM ...; 

你會得到執行的查詢,其類型的列表,使用的索引,等等...

相關問題