全面了解不同类型的数据库系统
使用表格(行和列)来存储数据,数据之间通过关系连接。遵循ACID原则,提供强一致性和事务保证。主要用于OLTP(在线事务处理)。
按列存储数据而非按行。特别适合分析查询,压缩率高,查询速度快。专为OLAP(在线分析处理)优化,支持大量数据的聚合查询。
以JSON或XML等格式存储半结构化文档。文档可以包含任意字段,Schema灵活,适合快速迭代开发。
简单的键值对存储模型,通过key快速访问value。性能极高,适合缓存、会话存储和配置管理。
也称为列族存储。数据按列族组织,支持动态列。结合了键值存储的简单性和关系数据库的查询能力。适合大规模、稀疏数据集。
以节点(Node)和边(Edge)的形式存储图数据。擅长处理复杂关系查询,适合社交网络、推荐系统等场景。
专门优化用于存储和查询时间序列数据。提供高效的压缩算法、时间窗口查询和连续查询功能。
专为存储和检索高维向量数据设计。支持相似度搜索,是AI和机器学习应用的关键基础设施。
分布式SQL查询引擎,可以在不同数据源上执行查询。提供统一的SQL接口访问多个数据源,无需数据迁移。
提供全文搜索能力,支持复杂的搜索查询、模糊匹配、相关性排序等功能。基于倒排索引实现快速检索。
| 特性 | 关系型 | 列式 | 文档型 | 键值型 | 图 | 向量 | 搜索引擎 |
|---|---|---|---|---|---|---|---|
| 主要用途 | OLTP事务 | OLAP分析 | 内容管理 | 缓存 | 关系分析 | 相似搜索 | 全文搜索 |
| 数据模型 | 表格 | 列式 | 文档 | 键值对 | 节点-边 | 向量 | 倒排索引 |
| 查询语言 | SQL | SQL | 类SQL | API | Cypher/GraphQL | API | REST/Dedicated |
| 一致性 | 强 | 强/最终 | 最终 | 最终 | 强/最终 | 最终 | 最终 |
| 扩展性 | 垂直 | 水平 | 水平 | 水平 | 水平 | 水平 | 水平 |
| 事务 | ✓ ACID | △ 有限 | △ 部分 | ✗ 无 | ✓ 支持 | ✗ 无 | ✗ 无 |
| 复杂查询 | ✓ 强 | ✓ 聚合强 | △ 中等 | ✗ 弱 | ✓ 关系查询强 | ✓ 向量搜索强 | ✓ 搜索强 |
| 代表产品 | MySQL | ClickHouse | MongoDB | Redis | Neo4j | Pinecone | Elasticsearch |
在线事务处理(Online Transaction Processing)
特点:
适合:
数据库:
MySQL、PostgreSQL、Oracle
在线分析处理(Online Analytical Processing)
特点:
适合:
数据库:
ClickHouse、Snowflake、Redshift
适合场景:需要ACID事务、固定结构数据、复杂JOIN查询
示例:电商订单、用户管理、金融系统
适合场景:海量数据分析、聚合查询、数据仓库
示例:ClickHouse用于日志分析、用户行为分析
适合场景:Schema变化频繁、非结构化数据
示例:内容管理、产品目录、IoT数据
适合场景:缓存、会话存储、简单查询
示例:Redis用于缓存、计数器、分布式锁
适合场景:复杂关系查询、社交网络、推荐系统
示例:好友关系、知识图谱、欺诈检测
适合场景:语义搜索、AI应用、相似度检索
示例:RAG应用、图像检索、推荐系统
适合场景:跨数据源查询、数据湖分析、多源数据整合
示例:Trino连接多个数据源
适合场景:全文搜索、相关性排序、日志检索
示例:电商搜索、日志分析、企业搜索
OLTP + OLAP
MySQL处理事务,ClickHouse处理分析,Kafka实时同步
PostgreSQL + 向量DB
PostgreSQL存储结构化数据,向量库支持RAG检索
Trino统一查询
通过Trino连接MySQL、ClickHouse、S3等多种数据源
多类型数据库
关系型+列式+向量+搜索,各司其职,优势互补