2012-02-27 89 views
0

我們有一個數據庫已經增長了大約5年。主表有近100列和7億行(不斷增長)。用於數百萬行存儲/查詢的最佳數據庫

常見用例是計算有多少行符合給定條件,即: select count(*)where column1 ='TypeA'and column2 ='BlockC'。

另一個用例是檢索符合條件的行。

查詢通過花費一點時間開始,現在他們需要幾分鐘的時間。 我想找到一些DBMS,讓我儘可能快地創建兩個用例。

我一直在尋找一些Column store數據庫和Apache Cassandra,但仍然不知道什麼是最佳選擇。有任何想法嗎?

回答

0

我打算假設這是一個沒有當前數據的分析(歷史)數據庫。如果不是,你應該考慮分離你的dbs。

你會想一些功能,以幫助加快分析:

  • 物化視圖。這實質上是預先計算值,然後存儲結果以供以後分析。 MySQL和Postgres(即將在Postgres 9.3中發佈)不支持這一點,但你可以用觸發器來模仿。

  • 簡單的OLAP分析。你可以使用Mondrian OLAP服務器(java),但是Excel不能輕鬆地與它交談,但是JasperSoft和Pentaho可以。

  • 您可能想要更改模式以便於OLAP分析,即星型模式。本好書:

http://www.amazon.com/Data-Warehouse-Toolkit-Complete-Dimensional/dp/0471200247/ref=pd_sim_b_1

如果你想開源,我會去的Postgres(像MySQL能夠大查詢不嗆),加上蒙德里安,加上Pentaho的。

如果不是開放源代碼,那麼最好的解決方案就是使用Analysis Services的Microsoft SQL Server。

+0

謝謝。描述中有一個問題。他有70億行。剛做了一些估計,它將每年增長約10億。有了新的定義,你還建議採用相同的解決方案嗎? – user1236552 2012-02-28 09:54:05

相關問題