如何判斷項目是否需要 NoSQL 數據庫解決方案?
如何判斷項目是否需要 NoSQL 數據庫解決方案?
我認為 SQL 限制定義了它。如果項目需要更大的數據庫或更大的欄位,那麼它需要 NoSQL。
我對嗎?
我查看了 NoSQL 數據庫限制。它們如下:
例如,假設 DynamoDB 具有相似的數字,我正在使用 MongoDB。
Mongo
可以安裝在許多電腦/節點上。PostgreSQL
不提供用於分片的內置工具,但是citus就在身邊。MongoDB支持高達 64 TB 的數據庫,文件大小為 16 MB。
MySQL的數據庫限制為 256 TB,表的最大大小為 64TB,記錄限制為 4 GB。
PostgreSQL對數據庫沒有限制(在某個地方確實存在 4 TB 用於測試),表中任何一個欄位的大小限制為 1 GB,表的最大大小限制為 64 TB。
還有其他與決策過程相關的內容嗎?
如何判斷項目是否需要 NoSQL 數據庫解決方案?
我認為 SQL 限制定義了它,如果項目需要比 NoSQL 更大的數據庫或更大的欄位。
我對嗎?
你看起來不太對勁 ;)
選擇 NoSQL 而不是關係數據庫與業務原因有很多關係,例如:
- 我們團隊中是否有人已經熟悉 NoSQL 數據庫?
- 它會更便宜嗎(在硬體、許可、支持等方面)?
- 它會更快(因為工具,或文件數據庫的無模式性質等)?
它還與您儲存的數據類型以及數據建模要求有很大關係。例如,如果您的應用程序需要儲存大量 XML 或 JSON 數據,或者如果您保存的每個實體可能略有不同,那麼使用 NoSQL 可能會更好。但是,如果您需要對關係進行建模並強制執行約束、引用完整性等,那麼使用關係數據庫可能會更好。
你真的打算接近你提到的極限嗎?我想不是。這樣看…
假設您將以每秒 1000 行的速度插入數據。(這相當快。)現在計算填滿 64TB 表需要多長時間。1K 行/秒 * 100 字節/行 * 30M 秒/年 = 3TB/年。這並沒有給你太多的頻寬來讀取或處理數據。
在這些極端情況下,任何類型的數據儲存都會吱吱作響。
您甚至可以在預算範圍內配置一台可容納 64TB 的電腦嗎?
我的觀點是,所有 db 限制可能都非常高,以至於您可能永遠不會達到它們。至少在您破壞為電腦供電的網路或其中的 CPU 或其他任何東西之前不會。
看看這個論壇。沒有多少問題詢問如何處理一些“限制”。那些這樣做的人通常會通過提供一些解決方法來回答(在暗示開發人員做了一些愚蠢的事情之後)。
這裡有更多的 MySQL 限制。