2011-05-30 39 views
0

創建複合數據庫索引時,應該影響字段順序的是什麼?創建複合數據庫索引時的列順序

例如,假設我根據日期,價格,成交量什麼應該影響我是否創建

 
DATE, PRICE, VOLUME 
VOLUME, DATE, PRICE 
. 
. 
. 

大概一個會更適合於特定類型的查詢創建複合索引,但我不知道哪些查詢。

回答

2

如果您通過DATEDATE and PRICEDATE,PRICE,VOLUME過濾(或搜索)記錄,將使用第一個記錄。如果您過濾記錄,則不會使用它,例如VOLUME。第二個將用於您搜索條件包括VOLUMEVOLUME and DATEVOLUME,DATE,and PRICE的查詢。

更確切地說,當您在GROUP BYORDER BY中使用索引列時,也可以使用索引。

一些例子:
索引1(DATE,PRICE,VOLUME
索引2(VOLUME,DATE,PRICE

SELECT * FROM table1 WHERE `DATE` = '2011-10-01'; //Index 1 used, Index 2 not used 
SELECT * FROM table1 WHERE `VOLUME` = '111'; //Index 1 not used, Index 2 used