2013-05-10 112 views
0
  • (要求)
  • 我們需要一個快速可擴展解決
  • 我們需要更快的方式做特別查詢;

我在考慮將我的10列表分成10個表格。 該表有10億行。快速即席查詢

原稿臺 ID,VALUE1,VALUE2,VALUE3,VALUE4,值5,VALUE6,VALUE7,VALUE8,VALUE9,VALUE10

到10個表

  • ID,VALUE1(索引上值1)
  • ID,VALUE2(索引上值2)
  • ID,VALUE3(索引上VALUE3)
  • ID,VALUE4(索引上VALUE4)
  • ID,值5(索引上值5)
  • ID,VALUE6(索引上value6)
  • ID,VALUE7(索引上value7)
  • ID,VALUE8(索引上value8)
  • ID,VALUE9(索引在value9)
  • ID,vALUE10(索引上value10)

我的計劃是,如果我在WHERE條件得到了5項條款,請5桌,並要求他們比使用一個HashSet設置的一個子集ID的。

我的問題是我重新發明輪子呢?這是"Column Store DB By RDBMS「還是別的什麼?

+0

您使用了哪些數據庫軟件? – Codesleuth 2013-05-10 13:04:04

+0

你的查詢是什麼樣的?每個值的頻率是多少?典型查詢的選擇性(選擇多少行)是什麼?數據更新的頻率如何? – 2013-05-10 13:10:14

回答

0

你並不需要10和表1和表10項指標都會有同樣的結果。 對於它所依賴的性能在條款。如果你的where子句是一個與表達喜歡

select * from table 
where value1 = x 
and value3 = y 

然後將查詢也無濟於事。

如果你的where子句OR表達式像

select * from table 
where value1 = x 
or value3 = y 
or value5 = z 

然後也許改寫了一個查詢工會會更快。

select * from table 
where value1 = x 
union select * from table 
where value3 = y 
union select * from table 
where value5 = z 

但是性能總是取決於數據庫引擎及其優化器。

+0

1個包含10個索引的表格將具有相同的結果。我應該在不丟失性能的情況下進行縮放。同桌上更多的索引意味着更少的表現。像10個女友一樣生活在相同的鄰居中。事情變得如此容易混亂。我喜歡他們在獨立的城市。:)我想能夠分配負載到集羣。 – 2013-05-10 13:42:30

+0

爲什麼你認爲10個表格可以比10個索引的表格更好? 10個表格,意味着對於1行,您需要插入10個表格。 1插入應該比10快。負載可以分佈到一個集羣,但應用程序不應該受到影響。這應該由數據庫集羣層接管。 – nakosspy 2013-05-10 18:56:15

+0

負載可以分配給一個集羣,但應用程序不應該受到影響。 >>>多數民衆贊成的原因。 – 2013-05-13 13:50:01