在選擇數據庫時,不同的人使用不同的標準:
- 數據庫採購人員:
- 採購成本:
- 存儲要求
- 網絡要求。
- 數據庫管理員 (DBA) 關心:
- 運維成本:
- 可靠的監控和警報系統
- 支持備份和恢復
- 合理的升級和遷移成本
- 活躍的支持社區
- 易於性能調整
- 易於故障排除
- 服務穩定性:
- 支持多個數據副本
- 高可用服務
- 支持多寫入和多活動架構
- 性能:
- 延遲
- 每秒查詢數 (QPS)
- 是否支持更高級的分層存儲功能
- 可擴展性:
- 水平和垂直擴展是否容易
- 安全性:
- 是否滿足審計要求並防止 SQL 注入和信息洩露
- 運維成本:
- 應用程序開發人員關心:
- 穩定的服務
- 性能
- 可擴展性
- 易於開發數據庫接口
- 易於修改數據庫模式
簡單的在 SQL 和 NoSQL 之間做出決定
- 數據模式複雜
- 是——> 2
- 沒有——> 3
- 各種搜索方法或強分析(搜尋>更新資料)
- 是——> SQL
- 否——> NoSQL
- 放入性能較低的設備中
- 是——> NoSQL
- 否——> SQL
簡單選擇一種類型的 SQL 數據庫
- 數據大小 < 1TB ?
- 是 ——> 2
- 否 ——> 3
- 需要開源嗎?
- 是 ——> MariaDB
- 否 ——> MariaDB / MySQL
- 可擴展性?
- 否 ——> TokuDB
- 是 ——> TiDB
簡單選擇一種類型的 NoSQL 數據庫
- 文檔數據庫 ?
- 是 ——> MongoDB
- 否 ——> 2
- 接受延遲?
- 是 ——> TiKV
- 否 ——> 3
- 數據大小 ?
- 大小 > 100 GB —–> Couchbase
- 20GB > 大小 > 100GB —–> 4
- 大小 < 20 GB —–> Redis
- 架構複雜?
- 是 ——> Redis cluster / Smart Jedis
- 否 ——> Couchbase