NoSQL (Not Only SQL) 涵蓋多種非關聯式資料庫,各具特色。**沒有銀彈,只有適合特定場景的工具**。本文系統整理四大主流類型、優缺點、用例與選型考量。
| 類型 | 資料模型 | 核心優勢 | 典型產品 |
|---|---|---|---|
| 鍵值 | Key → Blob (不解析值) | 極致效能、簡單、水平擴展 | Redis, DynamoDB, Riak, Memcached |
| 文件 | JSON/BSON Document (半結構化) | 靈活 Schema、豐富查詢、巢狀資料 | MongoDB, Couchbase, Elasticsearch |
| 欄族 | Row Key → Column Family → Columns | 海量寫入、稀疏欄位、時間序列 | Cassandra, HBase, ScyllaDB |
| 圖形 | Nodes + Edges + Properties | 關係遍歷、社交網路、推薦引擎 | Neo4j, JanusGraph, Amazon Neptune |
| 因素 | 關鍵問題 |
|---|---|
| 1. 技術成熟度 | 是否有 GA 版本?生產案例?社群活躍度? |
| 2. 一致性需求 | 能接受最終一致?需要強一致/ACID? |
| 3. 部署平台 | Linux only?需 Windows/主機支援?商業版才有跨平台? |
| 4. 查詢語言 | 團隊熟悉 SQL?需支援類 SQL?接受自有 DSL? |
| 5. 多模型支援 | 單一引擎支援多種模型 (文件+圖+鍵值) 可減少技術棧 |
| 6. 廠商鎖定風險 | 雲端託管服務 (DynamoDB, Cosmos DB) 遷移難度? |