3

我們有每家公司,國家和產品的不同meassures:性能星型模式(BI)

公司A,澳大利亞,啤酒,10,22,3,9

常見的情況是計算總和對於特定國家的啤酒,衡量標準爲1。

我心裏有兩個選擇:

選項A:

尺寸-表:

ID 
Company 
Country 
Product 

測量 - 表:

Dimension.ID (FK) 
DateTime 
Measure1 
Measure2 
Measure3 
Measure4 

或者選項B :

多功能一表:

ID 
Company 
Country 
Product 
DateTime 
Measure1 
Measure2 
Measure3 
Measure4 

在維度表10000條唯一的記錄,並在測量表近3000萬的記錄。

目前我們使用的產品,公司和國家的字母數字鍵。

我的問題

執行好?

用於索引中的列有什麼建議?

回答

1

如果您認爲在「維」表中的一行的平均大小爲50個字節(只是猜測),並在「測量表」也是50個字節,然後在選項A,你將有規模的數據庫不超過1.5 GB少,選項B不小於3 GB。這是一個重大的差異。

所以,我要說的是,選項A是更好,因爲數據庫的大小更小。

索引取決於您要使用的查詢。但我認爲,在使用選項A時,由於「維度」表很小,因此不需要索引(除主鍵和外鍵創建的索引外)。

+0

存儲便宜:)但我們需要查詢儘可能快。 – LuckyStrike

+0

我什至沒有想到錢;)。僅關於性能和集羣大小。 – Grzegorz

+1

如果數據使用更多空間,每次訪問它時,都必須閱讀它。因此讀取兩倍的數據將花費兩倍的時間。此外,它減少了你需要的數據緩存在內存中的機會,因爲只有一半的記錄可以保存在相同數量的RAM中。在RAM中訪問數據的速度要快10倍或者幾百倍。 – FrankPl