Postgresql

使用哪個數據庫?

  • January 29, 2013

嘿。我正在尋找一個免費用於商業網站的數據庫,它應該具有這些設計功能,按給定的順序:

  1. 自動分片(通過添加更多伺服器節點獲得更多可用空間)
  2. 高讀取性能
  3. 數據大於可用記憶體(所以,當然是持久的)
  4. 新的插入應該可以實時讀取/更新。

非常方便但不是必需的功能:

  1. 像 MongoDB 中的就地更新,因為第 1 到 7 列的大小永遠不會改變。並且第 0 列根本不會改變。
  2. Handy 也是我可以查詢從節點的地方。不只是大師。實現更多的並發操作(尤其是讀取)。

非關係,關係,無所謂。

我將有數十億條如下所示的條目:

{
   0: (64 or 32, not decided yet) byte string,
   1: 64 bit integer,
   2: 64 bit integer,
   3: 64 bit integer,
   4: 64 bit integer,
   5: 64 bit integer,
   6: 64 bit integer,
   7: 64 bit integer
}

唯一的鍵/索引將是“0”(SQL 中的主索引,或 NoSQL 數據庫中的鍵)。

查詢將如下所示:

  • 選擇 * WHERE 0 =‘字元串’
  • 更新 3=int, 6=int, 7=int WHERE 0=‘string’
  • 刪除 0=‘字元串’
  • 插入{0:‘字元串’,1 = int,2 = int,3 = int,4 = int,5 = int,6 = int,7 = int}

沒有其他查詢(如範圍等)。

每 1,000 次操作將有:

  • 600 次讀取(非連續)
  • 200 次更新(非連續)
  • 150 個刀片(如果可能,批量)
  • 50 次刪除(如果可能,批量刪除)

謝謝您的回答!

一些接近的分貝:

1:Postgres-XC,滿足大多數領域,除了分片需要一些設計工作

2:VoltDB,滿足除了大於記憶體的數據以外的大部分領域

關鍵問題是為什麼需要自動分片?任何自動化都會增加複雜性,如果你足夠大以至於需要分片,你可能可以讓專家仔細研究如何最好地做到這一點(即通過 Postgres-XC)。

老實說,我認為對於你這個職位的大多數人來說,最好的選擇是從 PostgreSQL 開始,併計劃在你需要它時使用更大的伺服器和 Postgres-XC 進行擴展和擴展。但是有很多在 PostgreSQL 上執行的大型系統,包括 Skype 和 Instagram,因此即使沒有分片,它當然也可以進行 Web 擴展。

引用自:https://dba.stackexchange.com/questions/31132