Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

数据库技术对比

数据库分类

数据库
├── 关系型 (RDBMS)
│   ├── PostgreSQL
│   ├── MySQL
│   ├── SQLite
│   └── Oracle / SQL Server
├── 文档型 (Document)
│   ├── MongoDB
│   └── CouchDB
├── 键值型 (Key-Value)
│   ├── Redis
│   └── DynamoDB
├── 列族型 (Column-Family)
│   ├── Cassandra
│   └── HBase
├── 时序型 (Time-Series)
│   ├── InfluxDB
│   ├── TimescaleDB
│   └── QuestDB
├── 图数据库 (Graph)
│   ├── Neo4j
│   └── ArangoDB
├── 向量数据库 (Vector)
│   ├── Pinecone
│   ├── Milvus
│   ├── Weaviate
│   └── Chroma
└── NewSQL
    ├── CockroachDB
    ├── TiDB
    └── YugabyteDB

核心对比

关系型数据库

特性PostgreSQLMySQLSQLite
类型对象-关系型关系型嵌入式
并发MVCCMVCC文件锁(单写)
扩展性读写分离 + 逻辑复制读写分离 + Group Replication无(单文件)
数据类型丰富(JSONB、数组、范围、几何)基础(JSON 支持较弱)弱类型
扩展生态极强(PostGIS、TimescaleDB、pgvector)中等有限
许可证PostgreSQL License(类 MIT)GPL v2公有领域
适用场景复杂查询、地理数据、全文搜索Web 应用、读多写少移动端、嵌入式、原型

选型建议

  • 默认选 PostgreSQL:功能最全、扩展性最强、社区最活跃
  • MySQL:已有成熟 MySQL 生态、需要简单读写场景
  • SQLite:单机、嵌入式、不需要独立服务

文档型数据库

特性MongoDBCouchDB
数据模型BSON 文档(类似 JSON)JSON 文档
查询语言MQL(MongoDB Query Language)REST API + Mango Query
复制Replica Set(主从)Master-Master(多主)
索引B-Tree、地理空间、文本、哈希B-Tree
事务4.0+ 支持多文档事务最终一致性
适用场景内容管理、实时分析、CMS离线优先应用、同步场景

键值数据库

特性RedisDynamoDB
模式内存为主,可持久化全托管,磁盘为主
数据结构String、List、Set、Hash、Sorted Set、StreamKey-Value、文档
延迟亚毫秒个位数毫秒
持久化RDB 快照 + AOF 日志自动
扩展Redis Cluster(分片)自动扩展
适用场景缓存、会话、排行榜、消息队列大规模 KV 存储、电商购物车

时序数据库

特性InfluxDBTimescaleDBQuestDB
底层自研 TSM 引擎PostgreSQL 扩展自研,列式存储
查询Flux / InfluxQLSQLSQL
压缩自动自动(原生压缩)高压缩比
保留策略自动过期原生分区 + 自动压缩自动过期
适用场景DevOps 监控、IoT已有 PG 生态、需 SQL高吞吐金融数据

图数据库

特性Neo4jArangoDB
模型属性图多模型(图 + 文档 + KV)
查询语言CypherAQL(ArangoDB Query Language)
集群Enterprise 版支持社区版即支持
ACID完整支持完整支持
适用场景知识图谱、推荐、社交网络多模型需求、灵活查询

向量数据库(AI/ML 场景)

特性PineconeMilvusWeaviateChroma
部署全托管 SaaS自部署 / Zilliz Cloud自部署 / Cloud嵌入式 / 自部署
索引HNSW + proprietaryIVF、HNSW、DiskANNHNSWHNSW
混合搜索稀疏+稠密稀疏+稠密稀疏+稠密+关键词稀疏+稠密
过滤元数据过滤标量过滤标量过滤元数据过滤
标量存储元数据Payload原生属性原生
适用场景快速上手、全托管大规模生产、自部署语义搜索、RAG快速原型、本地开发

NewSQL

特性CockroachDBTiDBYugabyteDB
协议兼容PostgreSQLMySQLPostgreSQL
架构分布式事务分布式事务 + HTAP分布式事务
扩展自动分片、水平扩展自动分片、TiFlash 列存自动分片
强一致性RaftRaftRaft
适用场景全球分布式、强一致大规模 OLTP + OLAPPostgreSQL 兼容分布式

选型决策树

需要事务?
├── 是 → 数据量多大?
│   ├── < 1TB → PostgreSQL / MySQL
│   └── > 1TB → 需要分布式?
│       ├── 是 → CockroachDB / TiDB / YugabyteDB
│       └── 否 → PostgreSQL(读写分离)
├── 否 → 数据模型?
│   ├── 灵活文档 → MongoDB
│   ├── KV 缓存 → Redis
│   ├── 时序数据 → TimescaleDB(已有PG)/ InfluxDB(独立时序)
│   ├── 关系+图 → Neo4j / ArangoDB
│   └── 向量/语义 → Milvus(生产)/ Chroma(原型)

趋势

  1. HTAP 混合事务分析:TiDB、CockroachDB 等 NewSQL 正在模糊 OLTP 和 OLAP 的边界
  2. 向量数据库爆发:RAG / LLM 应用推动向量数据库需求激增
  3. Serverless 数据库:Aurora Serverless、PlanetScale、Neon 等按需计费模式
  4. 多模型数据库:ArangoDB、Fauna 等试图用一个引擎覆盖多种数据模型
  5. 边缘数据库:SQLite + CRDT(如 LiteFS、Turso)走向边缘部署

参考资料