2011-06-04 28 views
0

假設我有以下字段一些股市的數據我應該如何索引以下財務數據模式?

股票,DATE,BID,ASK

我最常用的查詢將是以下類型的

其中STOCK = ... AND DATE = ... AND BID = ...

隨着

其中STOCK = ... AND DATE = ...並問= ...

個我正在考慮的兩個主要選項是:

1. Indexing 

a) STOCK, DATE, BID 
b) STOCK, DATE, ASK 

2. Indexing 

a) STOCK, DATE 
b) BID 
c) ASK 

我不知道如何選擇兩個

回答

1

您應該使用滿足您的WHERE子句,即第一個選項你給的指標。

在第二組索引中,不可能使用b)和c)。 a)將被使用,但性能不如1中列出的那些索引。

值得注意的是,大多數DBMS很少使用多個索引來滿足單個表中的選擇 - 所以當涉及到索引在股票/日期和另一個投標中,一個或另一個將在適當情況下使用 - 但不能同時使用。

1

如果日期是出價,ASK是相同的日期,我會把它們放在一張桌子上 - 當桌子少時,它會更簡單,更簡單。

這也將使查詢這樣的可能:

select * from my_table where ask - bid > 5 

創建這些索引,以滿足您的where子句:

create index idx1 on my_table(stock, date, bid); 
create index idx2 on my_table(stock, date, ask); 
+0

的OP意味着買入價和賣出都已經在同一個表。 – 2011-06-04 07:13:20

相關問題