DATABASE · 选型对比 / 架构决策

数据库对比

从关系型到 NoSQL,从内存缓存到搜索引擎,每种数据库都在特定的场景中闪闪发光。对比 8 种主流数据库的核心理念、性能表现和适用场景,帮助你做出最合适的技术选型。

8种数据库 6个对比维度 6类业务场景
MySQL PostgreSQL MariaDB SQLite Redis MongoDB Elasticsearch ClickHouse MySQL PostgreSQL MariaDB SQLite Redis MongoDB Elasticsearch ClickHouse

8 大数据库全方位对比

数据库 类型 ACID 查询语言 性能 扩展性 适用场景
MYMySQL
关系型 (RDBMS)
SQL
OLTPWeb 应用电商
PGPostgreSQL
关系型 (ORDBMS)
SQL + JSON/全文搜索
复杂查询地理数据金融
MBMariaDB
关系型 (RDBMS)
SQL
MySQL 替代OLTP开源
SLSQLite
嵌入式关系型
SQL
移动端嵌入式本地存储
ReRedis
内存 KV / 缓存
RESP 协议 + Lua
缓存会话限流
MGMongoDB
文档 NoSQL
MQL (JSON-like)
文档存储大数据IoT
ESElasticsearch
搜索 / 分析
RESTful + Query DSL
全文搜索日志可观测
CHClickHouse
列式 OLAP
SQL 扩展
OLAP实时分析大数据

各数据库深度解析

MY

MySQL 8.4 LTS

类型关系型 (RDBMS) — 行式存储
ACID完全支持(InnoDB 引擎)
查询语言标准 SQL + 存储过程 + 触发器
扩展性主从复制 / 分片 / Group Replication
最流行的开源关系型数据库。InnoDB 引擎提供完整 ACID 支持和行级锁。MySQL 8.4 引入了 JSON 增强、窗口函数、CTE、原子 DDL。广泛用于 Web 应用(LAMP/LEMP 栈)、电商、CMS 系统。

核心特性

  • B+Tree 索引 + 哈希索引
  • MVCC 多版本并发控制
  • 自适应哈希索引
  • 在线 DDL(INSTANT 算法)
  • Data Dictionary 升级
  • Clone Plugin 快速复制
PG

PostgreSQL 16

类型对象关系型 (ORDBMS)
ACID完全支持(完整 ACID / MVCC / 丰富约束能力)
查询语言SQL + JSONB + 全文搜索 + 扩展
扩展性流复制 / 逻辑复制 / Patroni + Citus
功能最丰富的关系型数据库,被誉为"开发者数据库"。原生支持 JSONB、GIS(PostGIS)、数组、范围类型、自定义类型。PG 16 在并行查询、逻辑复制、性能方面大幅提升。适合复杂查询、金融、地理信息等场景。

核心特性

  • MVCC + 快照隔离
  • JSONB 二进制 JSON
  • PostGIS 地理空间扩展
  • BRIN / GiST / GIN 多索引
  • 表继承 + 分区
  • 并行查询 + 聚合下推
MB

MariaDB 11.4

类型关系型 (RDBMS) — MySQL 分支
ACID完全支持(InnoDB/XtraDB)
查询语言SQL 兼容 MySQL + 专属扩展
扩展性Galera 多主 / 主从 / Spider 分片
MySQL 的开源分支,由原始 MySQL 团队维护。完全兼容 MySQL 的同时,加入了更多创新特性:Aria 引擎、ColumnStore 列存、Galera 多主集群。MariaDB 11.4 引入了 Oracle 兼容模式、AES 加密增强等。

核心特性

  • Galera 同步多主复制
  • Aria 非事务引擎
  • ColumnStore 列式分析
  • Hash Join 优化
  • WITH RECURSIVE CTE
  • Oracle PL/SQL 兼容
SL

SQLite 3.46

类型嵌入式关系型(无服务器)
ACID完全支持(单写多读)
查询语言SQL(功能受限)
部署方式单文件嵌入应用进程
世界上部署最广泛的数据库引擎(嵌入式到手机、浏览器中)。零配置、无服务器、整个数据库存储在一个文件中。擅长移动应用(Android/iOS)、本地存储、测试环境。不过不支持并发写入和网络访问。

核心特性

  • 零配置 - 即用即走
  • 单文件数据库
  • WAL 模式提升并发
  • FTS5 全文搜索
  • JSON 函数支持
  • 小于 600KB 代码体积
Re

Redis 7.2

类型内存 KV 缓存 + 数据结构服务器
ACID部分(AOF/RDB 持久化)
查询语言RESP 协议 + Lua 脚本
数据结构String / Hash / List / Set / Sorted Set / Stream
极速的内存数据库,单机 QPS 可达 10 万+。支持丰富的数据结构和原子操作。7.x 版本引入了 Redis Stack(JSON、Search、TimeSeries、Bloom 等模块)。常用于缓存、会话管理、实时排行榜、限流、消息队列。

核心特性

  • 纯内存操作 - 微秒级延迟
  • 多种持久化 (RDB/AOF)
  • 哨兵 + 集群高可用
  • Redis Stack 多模型
  • 发布订阅 + Stream
  • Lua + 函数脚本
MG

MongoDB 7.0

类型文档 NoSQL(BSON 格式)
ACID4.0+ 支持多文档事务
查询语言MQL(JSON 风格聚合管道)
分片原生水平扩展(Auto-Sharding)
最流行的文档型 NoSQL 数据库。BSON 文档模型灵活,天然匹配面向对象数据。聚合管道强大,支持复杂的数据变换和分析。MongoDB 7.0 引入了分片优化、时间序列集合、查询加密等。适合 IoT、内容管理、实时分析。

核心特性

  • 灵活 Schemaless 文档
  • 原生分片 + 复制集
  • 聚合管道 (Aggregation Pipeline)
  • Change Streams
  • TTL / 部分索引
  • Atlas 云托管的 Serverless
ES

Elasticsearch 8.14

类型分布式搜索 + 分析引擎
ACID弱(近实时 NRT)
查询语言RESTful JSON + Query DSL + SQL
底层引擎Lucene 倒排索引
基于 Lucene 的分布式搜索与分析引擎。擅长全文检索、日志分析、APM 可观测性。Elastic Stack(ELK)生态完善:Logstash 采集、Kibana 可视化。8.x 安全性大幅提升(默认 TLS、RBAC)。性能极强,大规模数据下可实现低延迟检索,效果取决于分片和查询模型。

核心特性

  • 倒排索引全文搜索
  • 分布式 + 跨集群搜索
  • 聚合分析 (Metric / Bucket / Pipeline)
  • 向量搜索 (kNN)
  • ILM 索引生命周期管理
  • Elasticsearch SQL
CH

ClickHouse 24.x

类型列式 OLAP 数据库
ACID弱(最终一致性)
查询语言SQL 扩展(列式 + 向量化)
性能单表查询 分析型聚合场景通常显著快于行存数据库,视模型和查询而定
开源列式存储数据库,专为实时分析而生。列式存储 + 向量化执行引擎,在聚合查询上比传统行存快两个数量级。采用 MergeTree 引擎家族,支持物化视图、采样、TTL。适合可观测性、用户行为分析、广告报表等海量数据分析场景。

核心特性

  • 列式存储 + 向量化执行
  • MergeTree 引擎族
  • 实时数据插入 + 异步合并
  • 物化视图 + AggregatingMergeTree
  • 分布式查询 + 分片
  • 支持 SQL + JSON 导入

从业务负载选择数据库

数据库选型首先看负载模型:事务、分析、搜索、缓存、文档、日志与实时看板的需求完全不同。

场景优先选择常见组合关键指标避坑
订单/支付/库存MySQL / PostgreSQL主库 + Redis 缓存事务、锁、主从延迟、恢复时间不要用 Redis/ES 承担强事务主库
报表分析 / OLAPClickHouseKafka + ClickHouse列存压缩、写入吞吐、聚合延迟不适合频繁小事务更新
全文搜索ElasticsearchPostgreSQL/MySQL + ES召回率、索引刷新、分片大小ES 不是事务数据库
热点缓存RedisDB + Redis + MQ命中率、内存、淘汰策略、雪崩保护持久化不等于强一致
灵活文档MongoDBMongoDB + Redis文档模型、索引、聚合管道Schema-free 不等于无规范
嵌入式/本地存储SQLiteApp + SQLite文件锁、备份、迁移脚本不适合多写高并发服务端

OLTP

强调事务一致性、低延迟点查、索引命中和锁控制,适合业务主库。

OLAP

强调批量写入、列式压缩、复杂聚合和扫描吞吐,适合报表分析。

Cache

用内存换延迟,关注过期策略、击穿/穿透/雪崩和热点 Key。

Search

强调分词、相关性排序、倒排索引和近实时检索,不适合强事务。

Document

适合对象结构变化快、嵌套数据多的业务,但仍需字段规范与索引设计。

运维维度对比

备份恢复主库要验证恢复流程;Redis/ES/ClickHouse 也要有快照和重建方案。
高可用关注自动故障转移、脑裂保护、复制延迟和客户端重连。
索引维护慢查询、低选择性索引、过多复合索引都会拖慢写入。
监控指标QPS、P95、连接数、锁等待、Buffer 命中率、磁盘 IO、复制延迟。

常见组合架构与误区

MySQL + Redis

典型交易系统:MySQL 负责事务,Redis 缓存热点。注意缓存一致性与失效策略。

PostgreSQL + Elasticsearch

结构化数据在 PG,复杂全文检索同步到 ES。注意 ES 索引重建和最终一致性。

Kafka + ClickHouse

日志/行为实时分析常用组合。注意批量写入、分区设计和冷热数据管理。

选型误区

不要把 Redis 当唯一主库;不要用 ES 做资金流水;不要让 SQLite 承担多写服务端并发。