我應該使用什麼數據庫

在選擇數據庫時,不同的人使用不同的標準:

  • 數據庫採購人員:
  • 採購成本:
    • 存儲要求
    • 網絡要求。
  • 數據庫管理員 (DBA) 關心:
    • 運維成本:
      • 可靠的監控和警報系統
      • 支持備份和恢復
      • 合理的升級和遷移成本
      • 活躍的支持社區
      • 易於性能調整
      • 易於故障排除
    • 服務穩定性:
      • 支持多個數據副本
      • 高可用服務
      • 支持多寫入和多活動架構
    • 性能:
      • 延遲
      • 每秒查詢數 (QPS)
      • 是否支持更高級的分層存儲功能
    • 可擴展性:
      • 水平和垂直擴展是否容易
    • 安全性:
      • 是否滿足審計要求並防止 SQL 注入和信息洩露
  • 應用程序開發人員關心:
    • 穩定的服務
    • 性能
    • 可擴展性
    • 易於開發數據庫接口
    • 易於修改數據庫模式

簡單的在 SQL 和 NoSQL 之間做出決定

  1. 數據模式複雜
    1. 是——> 2
    2. 沒有——> 3
  2. 各種搜索方法或強分析(搜尋>更新資料)
    1. 是——> SQL
    2. 否——> NoSQL
  3. 放入性能較低的設備中
    1. 是——> NoSQL
    2. 否——> SQL

簡單選擇一種類型的 SQL 數據庫

  1. 數據大小 < 1TB ?
    1. 是 ——> 2
    2. 否 ——> 3
  2. 需要開源嗎?
    1. 是 ——> MariaDB
    2. 否 ——> MariaDB / MySQL
  3. 可擴展性?
    1. 否 ——> TokuDB
    2. 是 ——> TiDB

簡單選擇一種類型的 NoSQL 數據庫

  1. 文檔數據庫 ?
    1. 是 ——> MongoDB
    2. 否 ——> 2
  2. 接受延遲?
    1. 是 ——> TiKV
    2. 否 ——> 3
  3. 數據大小 ?
    1. 大小 > 100 GB —–> Couchbase
    2. 20GB > 大小 > 100GB   —–> 4
    3. 大小 < 20 GB —–> Redis
  4. 架構複雜?
    1. 是 ——> Redis cluster / Smart Jedis
    2. 否 ——> Couchbase

Add a Comment

發佈留言必須填寫的電子郵件地址不會公開。