NoSQL 資料庫不使用關係表模型。此類別涵蓋文件儲存、鍵值儲存、圖資料庫和寬列儲存。每種資料庫都解決不同的問題。文件儲存(例如 MongoDB)保存類似 JSON 的記錄。鍵值儲存(例如 Redis)將鍵映射到值以實現快速查找。圖資料庫(例如 Neo4j)對實體之間的關係進行建模。寬列儲存(例如 Cassandra)處理跨分佈式節點的海量寫入。它們的共同點是靈活性。 NoSQL 資料庫放寬了關聯式資料庫強制執行的模式約束。
這種靈活性既是它的吸引力,也是它的風險所在。文件儲存系統可以接受包含不同欄位的記錄,這使得資料模型的演進無需遷移即可輕鬆實現。但同時也容易導致數據不一致。應用程式必須強制執行資料庫本身沒有規定的規則。與傳統的關係型系統相比,NoSQL 資料庫更容易進行橫向擴展。它們將資料分佈在多個伺服器上,從而能夠處理高流量和大型資料集。但這種靈活性也帶來了一些權衡,例如一致性問題。許多 NoSQL 資料庫提供的是最終一致性而非強一致性。不同的節點在短時間內可能會看到不同的值。這對於社群媒體動態來說是可以接受的,但對於銀行帳戶餘額來說則不可接受。正確的選擇取決於數據本身以及應用程式所需的保證。
NoSQL 資料庫類型
- 文件-類似 JSON 的記錄,靈活的模式
- 鍵值對-簡單的鍵值對,快速找出
- 圖——節點和關係
- 寬列式-分散式、高寫入吞吐量
- 時間序列-針對帶有時間戳記的資料進行了最佳化
NoSQL 並不比 SQL 好,它們只是不同的系統。選擇合適的工具取決於具體問題。
Comments
No comments yet. Be the first to share a thought.
Leave a comment