数据库分类详细解析与对比

📅 2026/6/28 18:46:23
数据库分类详细解析与对比
目录关系型数据库 (Relational Database, RDBMS)分布式数据库 (Distributed Database)NoSQL 数据库NewSQL 数据库图数据库 (Graph Database)时序数据库 (Time-Series Database)文档数据库 (Document Database)键值数据库 (Key-Value Database)对象数据库 (Object Database)内存数据库 (In-Memory Database)列族数据库 (Column-Family Database)搜索引擎数据库各类数据库对比总结1. 关系型数据库 (Relational Database, RDBMS)1.1 定义关系型数据库是基于关系模型Relational Model的数据库数据以**二维表Table**的形式组织存储表与表之间通过外键建立关联。1.2 核心特性特性说明ACID 事务原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)SQL 标准使用结构化查询语言进行数据操作数据完整性支持主键、外键、唯一约束、检查约束等规范化设计遵循范式1NF/2NF/3NF/BCNF减少数据冗余强一致性保证数据在事务完成后的准确性和一致性1.3 代表产品产品厂商许可证特点MySQLOracleGPL开源、轻量、社区活跃、Web 应用首选PostgreSQLPostgreSQL Global Development GroupPostgreSQL License功能丰富、扩展性强、支持 JSON/地理空间Oracle DatabaseOracle商业企业级、高性能、高可用、功能全面SQL ServerMicrosoft商业/免费版与微软生态深度集成、BI 能力强SQLiteSQLite Consortium公有领域嵌入式、零配置、单文件存储MariaDBMariaDB FoundationGPLMySQL 分支、完全兼容、更多特性1.4 适用场景金融交易系统银行、证券ERP/CRM 等企业管理系统需要复杂事务和强一致性的业务数据关系明确、结构固定的应用1.5 局限性水平扩展困难分库分表复杂高并发写入性能瓶颈不适合非结构化/半结构化数据Schema 变更成本较高2. 分布式数据库 (Distributed Database)2.1 定义分布式数据库是将数据物理分散存储在多个节点服务器上但在逻辑上表现为一个统一的数据库系统。数据通过网络在节点间进行分布和协调。2.2 核心特性特性说明数据分片 (Sharding)将数据按规则分散到不同节点数据复制 (Replication)多副本存储提高可用性和容错性CAP 定理一致性(C)/可用性(A)/分区容错性(P)三者不可兼得分布式事务跨节点的原子性操作如 2PC、3PC、TCC水平扩展通过增加节点线性扩展存储和计算能力2.3 分布式数据库类型2.3.1 分布式关系型数据库在关系模型基础上实现分布式架构兼顾 SQL 能力和扩展性。产品特点TiDBPingCAP 出品兼容 MySQLSpanner 架构HTAP 能力OceanBase蚂蚁集团出品金融级高可用TPC-C 世界纪录保持者CockroachDB开源兼容 PostgreSQL全球分布式YugabyteDB开源兼容 PostgreSQL/CQL云原生设计Google SpannerGoogle 云原生TrueTime 实现外部一致性PolarDB阿里云计算存储分离一写多读TDSQL腾讯云金融级分布式数据库GoldenDB中兴通讯金融核心系统首选2.3.2 分布式 NoSQL 数据库见第 3 节 NoSQL 数据库。2.4 一致性模型┌─────────────────────────────────────────────────────────┐ │ 一致性光谱 │ ├─────────────────────────────────────────────────────────┤ │ 强一致性 ──→ 顺序一致性 ──→ 因果一致性 ──→ 最终一致性 │ │ (Strong) (Sequential) (Causal) (Eventual) │ │ │ │ 数据实时一致 全局有序 因果相关有序 最终达到一致 │ │ 性能开销大 性能中等 性能较好 性能最优 │ └─────────────────────────────────────────────────────────┘2.5 适用场景海量数据存储PB 级高并发读写百万级 QPS全球化部署多数据中心金融核心系统强一致性要求互联网大规模应用2.6 核心挑战挑战解决方案分布式事务2PC/3PC、Saga、TCC、Seata数据一致性Paxos、Raft、Gossip 协议数据分片策略Hash 分片、范围分片、列表分片跨节点 JOIN计算下推、分布式 SQL 引擎全局唯一 IDSnowflake、UUID、数据库序列3. NoSQL 数据库3.1 定义NoSQLNot Only SQL是一类非关系型数据库的统称它们不使用固定的表结构不使用 SQL 作为主要查询语言通常具有高可扩展性和高可用性。3.2 NoSQL 分类3.2.1 键值数据库 (Key-Value Store)属性说明数据模型键-值对Key-Value Pair特点结构简单、读写极快、O(1) 复杂度代表产品Redis、Memcached、Amazon DynamoDB、Riak适用场景缓存、会话存储、计数器、排行榜、分布式锁核心命令示例SET user:1001 {name:张三,age:25} GET user:1001 INCR page_view:home3.2.2 文档数据库 (Document Store)属性说明数据模型JSON/BSON/XML 文档特点灵活 Schema、嵌套结构、支持复杂查询代表产品MongoDB、CouchDB、Amazon DocumentDB、Firebase适用场景内容管理、用户画像、电商商品、日志存储MongoDB 文档示例{ _id: ObjectId(...), name: 张三, address: { city: 北京, zip: 100000 }, tags: [VIP, 活跃] }3.2.3 列族数据库 (Column-Family Store)属性说明数据模型列族Column Family特点列式存储、高压缩比、适合批量分析代表产品Apache Cassandra、HBase、ScyllaDB、ClickHouse适用场景时序数据、物联网、日志分析、大数据仓库Cassandra 数据模型CREATE TABLE user_activity ( user_id UUID, event_time TIMESTAMP, event_type TEXT, data TEXT, PRIMARY KEY (user_id, event_time) ) WITH CLUSTERING ORDER BY (event_time DESC);3.2.4 图数据库 (Graph Database)详见第 5 节。3.3 NoSQL 与关系型对比维度关系型 (RDBMS)NoSQL数据模型固定表结构灵活 Schema查询语言SQL各产品专有 API/查询语言事务支持完整 ACID通常 BASE部分支持 ACID扩展方式垂直扩展为主水平扩展为主一致性强一致性最终一致性为主适用数据结构化结构化/半结构化/非结构化典型应用OLTP大数据、实时应用、缓存4. NewSQL 数据库4.1 定义NewSQL 是一类兼具关系型数据库的 ACID 事务和 SQL 接口以及 NoSQL 的水平扩展能力的新型数据库。4.2 核心特性✅ 完整 ACID 事务支持✅ 标准 SQL 接口✅ 自动水平分片Auto-Sharding✅ 高可用、自动故障恢复✅ 云原生架构4.3 代表产品产品类型特点TiDB开源HTAP混合事务/分析处理兼容 MySQLCockroachDB开源兼容 PostgreSQL全球分布式YugabyteDB开源兼容 PostgreSQL/CQL云原生Google Spanner商业TrueTime外部一致性全球分布式Vitess开源MySQL 分片中间件YouTube 出品PlanetScaleSaaSVitess 之上Git 式数据库工作流4.4 架构演进传统 RDBMS NoSQL NewSQL ┌─────────┐ ┌─────────┐ ┌─────────────┐ │ 单机架构 │ → │ 分布式 │ → │ 分布式 ACID│ │ ACID │ │ 高扩展 │ │ SQL 兼容 │ │ SQL │ │ 灵活模型 │ │ 云原生 │ └─────────┘ └─────────┘ └─────────────┘5. 图数据库 (Graph Database)5.1 定义图数据库以**节点Node/Vertex和边Edge/Relationship**的形式存储数据专门用于处理高度关联的数据。5.2 核心概念[节点: 人] [边: 关系] (张三) ────[朋友]────→ (李四) │ │ │ [同事] │ [同学] ↓ ↓ (王五) ←───[邻居]──── (赵六)概念说明节点 (Node)实体可带有属性标签边 (Edge)关系连接两个节点可有方向和属性属性 (Property)节点或边的键值对属性标签 (Label)节点的分类标记5.3 代表产品产品查询语言特点Neo4jCypher最流行、社区最大、ACIDAmazon NeptuneGremlin/SPARQL托管服务、全托管ArangoDBAQL多模型图文档键值JanusGraphGremlin开源、可扩展、与大数据集成TigerGraphGSQL原生并行图计算、高性能Nebula GraphnGQL国产、高性能、分布式5.4 适用场景社交网络分析好友推荐、关系挖掘知识图谱语义搜索、智能问答欺诈检测交易网络分析推荐系统协同过滤供应链/网络拓扑分析6. 时序数据库 (Time-Series Database, TSDB)6.1 定义时序数据库是专门用于存储和处理时间序列数据按时间顺序排列的数据点的数据库。6.2 核心特性特性说明高写入吞吐每秒百万级数据点写入时间索引基于时间的高效查询数据压缩时序数据高压缩率10:1 甚至更高降采样 (Downsampling)自动聚合历史数据降低存储数据保留策略自动过期删除旧数据6.3 代表产品产品特点InfluxDB最流行的时序数据库类 SQL 查询InfluxQL/FluxTimescaleDB基于 PostgreSQL 扩展SQL 兼容Prometheus云原生监控首选Pull 模式采集TDengine国产物联网优化超级表概念IoTDBApache 项目专为工业物联网设计OpenTSDB基于 HBase大规模时序存储6.4 适用场景服务器/应用监控Metrics物联网传感器数据金融行情数据工业设备遥测日志时间序列分析7. 文档数据库 (Document Database)7.1 定义文档数据库以文档为基本存储单元文档通常是 JSON、BSON 或 XML 格式具有自描述性和灵活的结构。7.2 核心特性灵活 Schema同一集合中文档结构可以不同嵌套文档支持多层嵌套减少 JOIN 操作丰富查询支持文档内字段查询、数组查询、聚合管道水平扩展原生支持分片集群7.3 代表产品产品文档格式特点MongoDBBSON最流行、功能最全面、聚合管道强大CouchDBJSONREST API、MVCC、离线同步Amazon DocumentDBBSON兼容 MongoDB托管服务Firebase FirestoreJSONGoogle 出品实时同步、移动端友好RavenDBJSON.NET 生态、ACID 事务、全文搜索7.4 MongoDB 核心概念映射MongoDB关系型数据库DatabaseDatabaseCollectionTableDocumentRowFieldColumnIndexIndex_idPrimary Key8. 键值数据库 (Key-Value Database)8.1 定义键值数据库是最简单的 NoSQL 类型以键Key作为唯一标识存储对应的值Value。8.2 核心特性极简模型Key → Value 映射超高性能内存级读写速度灵活 Value值可以是字符串、二进制、JSON 等任意格式丰富数据结构Redis字符串、列表、集合、哈希、有序集合、Bitmap、HyperLogLog、Stream、Geo8.3 代表产品产品存储方式特点Redis内存 持久化数据结构丰富、Pub/Sub、Lua 脚本、集群Memcached纯内存极致简单、高性能缓存RocksDB磁盘LSM-TreeFacebook 出品嵌入式、高性能写入LevelDB磁盘LSM-TreeGoogle 出品轻量级键值存储Amazon DynamoDB托管AWS 全托管、自动扩展、全球表etcd磁盘分布式键值存储Kubernetes 配置中心ZooKeeper磁盘分布式协调服务配置管理8.4 Redis 数据类型速查类型命令示例适用场景StringSET/GET/INCR缓存、计数器HashHSET/HGET对象存储ListLPUSH/RPOP队列、栈SetSADD/SISMEMBER标签、去重Sorted SetZADD/ZRANGE排行榜、延迟队列BitmapSETBIT/BITCOUNT签到、活跃用户统计HyperLogLogPFADD/PFCOUNTUV 统计StreamXADD/XREAD消息队列GeoGEOADD/GEORADIUS地理位置9. 对象数据库 (Object Database)9.1 定义对象数据库以对象为基本存储单元数据以面向对象的方式持久化对象之间的引用关系直接存储。9.2 核心特性对象持久化直接存储对象无需 ORM 映射引用透明对象间的引用直接保持继承与多态支持面向对象的继承体系原生对象查询支持面向对象查询语言如 OQL9.3 代表产品产品特点db4o开源嵌入式对象数据库ObjectDBJava 对象数据库JPA 兼容Versant企业级对象数据库InterSystems Cache/IRIS多模型数据库支持对象、关系、文档9.4 适用场景复杂对象模型的持久化CAD/CAM 系统电信网络管理需要深对象图导航的应用9.5 现状对象数据库在 90 年代曾流行但因SQL 生态过于强大和ORM 技术的成熟目前市场份额较小多被关系型ORM 方案取代。10. 内存数据库 (In-Memory Database)10.1 定义内存数据库是将数据主要存储在内存中的数据库通过避免磁盘 I/O 实现极致性能。10.2 核心特性特性说明亚毫秒延迟内存访问速度比磁盘快 10,000 倍以上高吞吐单机可达百万级 QPS持久化策略AOF追加日志、RDB快照、混合持久化数据恢复重启后从持久化文件恢复10.3 代表产品产品类型特点Redis键值多数据结构最流行内存数据库持久化可选Memcached键值纯缓存无持久化SAP HANA列式内存企业级内存计算平台VoltDB内存关系型分布式内存数据库ACIDAerospike键值混合内存SSD高性能Tarantool多模型Lua 应用服务器数据库10.4 内存 vs 磁盘数据库维度内存数据库磁盘数据库读取延迟亚毫秒毫秒级写入延迟亚毫秒毫秒级数据容量受内存限制受磁盘限制TB/PB数据持久性需额外策略天然持久成本高内存贵低适用热数据、缓存全量数据、冷数据11. 列族数据库 (Column-Family Database)11.1 定义列族数据库以列族Column Family为单位组织数据同一列族的数据物理存储在一起适合大规模写入和批量分析。11.2 核心特性列式存储按列存储适合分析型查询高写入吞吐LSM-Tree 结构顺序写优化高压缩比同列数据类型一致压缩效率高动态列每行可以有不同的列11.3 代表产品产品架构特点Apache Cassandra去中心化 P2P高可用、线性扩展、多数据中心Apache HBase主从架构基于 HDFSHadoop 生态、强一致性ScyllaDBC 重写 Cassandra10 倍性能提升、兼容 CQLClickHouse列式 OLAP极速分析查询、高压缩Apache Druid列式实时分析流式摄入、亚秒级查询11.4 行存储 vs 列存储行存储Row-Oriented 列存储Column-Oriented ┌────┬─────┬──────┐ ┌────────┬────────┬────────┐ │ ID │ Name│ Age │ │ ID: 1,2,3,4... │ ├────┼─────┼──────┤ ├────────┼────────┼────────┤ │ 1 │ 张三 │ 25 │ │ Name: 张三,李四... │ │ 2 │ 李四 │ 30 │ ├────────┼────────┼────────┤ │ 3 │ 王五 │ 28 │ │ Age: 25,30,28... │ └────┴─────┴──────┘ └────────┴────────┴────────┘ 适合OLTP按行读写 适合OLAP按列聚合分析12. 搜索引擎数据库12.1 定义搜索引擎数据库是专门用于全文搜索和复杂查询的数据库基于倒排索引Inverted Index实现高效文本检索。12.2 核心特性特性说明倒排索引词项 → 文档列表的映射全文检索支持分词、模糊匹配、相关性排序聚合分析支持复杂的统计聚合查询近实时搜索数据写入后秒级可搜索12.3 代表产品产品特点Elasticsearch最流行的搜索引擎ELK 栈核心RESTful APIApache SolrLucene 之上配置丰富、企业级Apache Lucene搜索引擎底层库OpenSearchAWS fork 自 Elasticsearch开源Meilisearch轻量级、开发者友好、即时搜索Typesense开源、 typo 容错、 faceted 搜索12.4 Elasticsearch 核心概念ES 概念关系型类比IndexDatabaseType已废弃TableDocumentRowFieldColumnMappingSchemaShard分片Replica副本12.5 适用场景电商商品搜索日志分析与监控ELK站内搜索引擎安全情报分析地理空间搜索13. 各类数据库对比总结13.1 综合对比表数据库类型数据模型一致性扩展性典型延迟代表产品关系型 (RDBMS)二维表强一致垂直扩展毫秒MySQL, PostgreSQL, Oracle分布式关系型二维表分布式可调水平扩展毫秒TiDB, OceanBase, CockroachDB键值 (Key-Value)键值对最终一致水平扩展亚毫秒Redis, DynamoDB文档 (Document)JSON/BSON 文档最终一致水平扩展毫秒MongoDB, CouchDB列族 (Column-Family)列族可调水平扩展毫秒Cassandra, HBase, ClickHouse图 (Graph)节点边强一致垂直/水平毫秒Neo4j, Nebula Graph时序 (TSDB)时间序列最终一致水平扩展毫秒InfluxDB, Prometheus, TDengine搜索引擎倒排索引最终一致水平扩展毫秒Elasticsearch, OpenSearch内存数据库多种强一致垂直扩展亚毫秒Redis, SAP HANANewSQL二维表强一致水平扩展毫秒TiDB, CockroachDB, Spanner13.2 选型决策树开始选型 │ ┌────────────┼────────────┐ ↓ ↓ ↓ 需要 ACID 海量数据 高并发缓存 事务SQL 高扩展 场景 │ │ │ ┌────┴────┐ ┌──┴──┐ ┌──┴──┐ ↓ ↓ ↓ ↓ ↓ ↓ 单机 分布式 NoSQL NewSQL Redis Memcached │ │ │ │ │ │ MySQL/ TiDB/ MongoDB TiDB 丰富 简单 PostgreSQL OceanBase Cassandra 数据结构 缓存 CockroachDB13.3 现代数据库发展趋势趋势说明云原生 (Cloud-Native)存储计算分离、Serverless、按需付费HTAP混合事务/分析处理一份数据支持 OLTPOLAP多模数据库 (Multi-Model)单一数据库支持多种数据模型AI 原生数据库内置向量检索、AI 推理能力Serverless无服务器架构自动扩缩容向量数据库专门存储和检索高维向量Embedding13.4 向量数据库补充向量数据库是近年兴起的数据库类型专门用于存储和检索高维向量如 AI 模型的 Embedding。产品特点Milvus开源专为向量设计GPU 加速Pinecone托管服务即开即用Weaviate开源GraphQL 接口多模态QdrantRust 编写高性能过滤搜索pgvectorPostgreSQL 扩展SQL 原生支持Redis VectorRedis 向量搜索模块结语数据库技术经历了从关系型到 NoSQL再到 NewSQL 和多模数据库的演进。现代应用往往采用多数据库组合的架构Polyglot Persistence根据具体场景选择最合适的数据库类型以构建高性能、高可用的数据系统。