![](/img/trans.png)
[英]What Database, and In Which Setup Can handle Several Millions Inserts Per Minute?
[英]Cassandra or PostgreSQL: High volume of Inserts per minute
這是我的場景:
請讓我知道在這種情況下哪個數據庫會更快更便宜。
Cassandra 可能會面臨 100,000 個單獨表的嚴重可擴展性問題。 100,000 個單獨的表意味着 100,000 個打開文件的倍數(因此您需要確保將內核配置為允許如此多的打開文件)、100,000 個 memtables(其中對每個表的最后修改臨時保存在內存中),因此您需要大量內存。
在 Cassandra 中執行此類操作的另一種方法是擁有一個表,其中包含 100,000 個不同的分區(這是 Cassandra 中寬行的名稱)。 每分鍾您都會向每個現有分區添加另一行(一個小條目)。 為避免分區在添加條目數月后變得龐大,人們通常所做的是每隔一周開始一個新分區(每周大約有 10,000 分鍾)。 在 Cassandra 建模中,這通常稱為“時間序列數據”。
在你的問題中,你只提到寫數據,而不是讀數據。 假設這不是疏忽,並且您真的更關心寫入性能而不是讀取性能,那么 Cassandra 是一個很好的選擇,因為它的寫入速度特別快。 如果您絕對關心速度和每美元性能,您還應該看看Scylla ,它是用 C++ 重新實現的 Cassandra。
聽起來像數據模型適合時間序列模型。 TimeScaleDB 可以使用新的分布式模型處理您的模型。 這些表只是一個更多的索引字段。 即按時間順序保存數據,啟用壓縮。 可以考慮不同類型的索引,而不僅僅是 B 樹。
我們的財務數據測試顯示出驚人的壓縮率 - 特別是如果所有表在關閉時間段內都有相似的數據,例如 3-4k 工具的累積和縮放值。 沒有嘗試使用 100k,但可能會考慮做一些基准測試,看看限制在哪里,以及在不同機器/集群急劇降級的情況下。
如果決定管理多個手動共享的服務器,維護可能會有點問題,但與現代集群相比,單個機器可以帶來成本奇跡。 如果可以容忍數據丟失,則可以使用多個強大的隔離盒,例如在合理的時間內從不同來源重放(例如從檔案中有效的市場數據重放)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.