2013-03-28 32 views
0

我們的產品的應用場景是這樣的:關於在MySQL表設計或選擇HBase的

  1. 店信息。
  2. 計數使用人數約爲8000萬。
  3. 用戶有很多屬性,大約有1000個。這些屬性可能有許多不同的類型:Date,Boolean,Long,Int ....或Null。

我們做的這些信息是什麼樣的:

  1. 獲得一個用戶的信息(serveral的propertys)
  2. 從計算properties.For例如選擇用戶:用戶找到其propertyA>10 && propertyB=true &&...

現在,我們使用的是Hbase ,就像一個寬列的表格, 但我認爲它可能不適合。 當我們得到一個或幾個用戶的信息時,經常會發生超時,所以我們把緩存放在中間的 ,但是我們不能把所有的信息都放到緩存中,然後超時仍然存在! 所以,我想可能hbase不是最好的機會,因爲我們的數據不是太大而不能使用hbase? 如果我們選擇mysql?

如何解決我們的問題?

回答

0

有你需要來作出結論之前分析一些事情,其中​​有些是:

  1. 你的數據的大小?不是根據記錄的數量而是根據數據文件的大小?
  2. 你正在使用什麼樣的HBase安裝?它是獨立的還是集羣的?
  3. 從HBase調用get/scan是否超時?

IMO,如果HBase不會給你任何好的性能結果,那麼它不會損害性能。但是,是的,任何NoSQL數據庫的真正用處將在數據成倍增長的集羣環境中。

如果您想要使用mysql或任何其他RDBMS,那麼您必須在應用程序級別考慮數據庫集羣,表分片,負載平衡和實現緩存。總的來說,我認爲你應該看看你的HBase的安裝,並嘗試調整它的應用程序。