Postgresql
使用哪個數據庫?
嘿。我正在尋找一個免費用於商業網站的數據庫,它應該具有這些設計功能,按給定的順序:
- 自動分片(通過添加更多伺服器節點獲得更多可用空間)
- 高讀取性能
- 數據大於可用記憶體(所以,當然是持久的)
- 新的插入應該可以實時讀取/更新。
非常方便但不是必需的功能:
- 像 MongoDB 中的就地更新,因為第 1 到 7 列的大小永遠不會改變。並且第 0 列根本不會改變。
- 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 擴展。