本页对比常见的数据库服务器,帮助你根据场景选择合适的数据库。

概览

数据库类型存储模型协议最佳场景
mysql关系型行式GPLWeb 应用、OLTP
postgresql关系型行式PostgreSQL复杂查询、GIS、金融
sqlite关系型行式公有领域嵌入式、移动应用
redisKV 缓存内存BSD缓存、会话、实时数据
mongodb文档型文档SSPL灵活 schema、内容管理
duckdb分析型列式MIT单机分析、数据处理
clickhouse分析型列式Apache 2.0大数据 OLAP、日志分析
elasticsearch搜索引擎文档SSPL全文搜索、日志、监控

按场景推荐

事务型业务(OLTP)

需要强一致性、ACID 支持的传统业务系统。

  • 首选mysql — 生态最成熟,社区文档最丰富,互联网公司标配
  • 复杂业务postgresql — 支持更丰富的数据类型、复杂查询、存储过程
  • 轻量级/嵌入式sqlite — 零配置,单文件存储,适合桌面和移动端

分析型业务(OLAP)

海量数据的聚合分析、报表查询。

  • 单机分析duckdb — 列式存储,可直接查询 CSV/Parquet,数据科学家首选
  • 大数据集群clickhouse — 单机性能炸裂,日志分析一天 3 亿条轻松处理
  • 已有 PG 生态postgresql + 列式扩展(如 TimescaleDB、Citus)

缓存与会话

高频读取、低延迟、允许数据丢失重建。

  • 首选redis — 毫秒级响应,支持多种数据结构,持久化可选
  • 大规模分布式:Redis Cluster 或 mongodb 作为文档缓存

全文搜索

站内搜索、文档检索、日志搜索。

  • 首选elasticsearch — 基于 Lucene,分布式,近实时搜索
  • 轻量级搜索postgresql 内置全文搜索

灵活 Schema / 文档存储

数据结构频繁变化、半结构化数据。

  • 首选mongodb — JSON 文档模型,横向扩展简单
  • 需要 SQL 兼容postgresql JSONB 字段

选型决策树

需要事务和强一致性?
  ├─ 是 → 复杂查询/GIS/金融?
  │         ├─ 是 → PostgreSQL
  │         └─ 否 → 高并发 Web?
  │                   ├─ 是 → MySQL
  │                   └─ 否 → SQLite(嵌入式)
  └─ 否 → 主要用途?
          ├─ 缓存/会话 → Redis
          ├─ 全文搜索 → Elasticsearch
          ├─ 灵活文档 → MongoDB
          └─ 数据分析 → 单机?
                          ├─ 是 → DuckDB
                          └─ 否 → ClickHouse

参考资料