01. 数据库系统概述与分类

数据库系统全景:关系型、NoSQL、NewSQL、时序数据库分类,OLTP vs OLAP 差异,以及数据库选型决策树。

1. 数据库分类全景

数据库系统
  ├── 关系型数据库 (RDBMS)
  │     ├── 商业:Oracle、SQL Server、DB2
  │     ├── 开源:PostgreSQL、MySQL、MariaDB
  │     └── 特点:ACID、SQL、强一致性、成熟生态
  │
  ├── NoSQL 数据库
  │     ├── 文档型:MongoDB、CouchDB、Firestore
  │     ├── 键值型:Redis、DynamoDB、Riak
  │     ├── 列族型:Cassandra、HBase、ScyllaDB
  │     ├── 图数据库:Neo4j、Dgraph、JanusGraph
  │     └── 搜索引擎:Elasticsearch、OpenSearch
  │
  ├── NewSQL 数据库
  │     ├── Google Spanner、CockroachDB、TiDB、YugabyteDB
  │     └── 特点:水平扩展 + ACID + SQL 兼容
  │
  └── 专用数据库
        ├── 时序数据库:InfluxDB、TimescaleDB、TDengine
        ├── 向量数据库:Pinecone、Milvus、pgvector
        └── 内存数据库:Redis、SAP HANA、MemSQL

2. OLTP vs OLAP

维度OLTP(在线事务处理)OLAP(在线分析处理)
用途日常业务操作数据分析、报表、决策支持
数据规模GB ~ TBTB ~ PB
查询模式点查、短事务、少量行全表扫描、聚合、多表 JOIN
写入高并发随机写入批量导入、ETL
更新频繁 UPDATE/DELETEmostly 追加(Append-only)
响应时间毫秒级秒 ~ 分钟级
代表MySQL、PostgreSQL、OracleClickHouse、Snowflake、BigQuery

3. NoSQL 选型指南

类型数据模型适用场景代表产品
文档型JSON/BSON 文档内容管理、用户资料、 catalogsMongoDB
键值型key-value缓存、会话、购物车Redis、DynamoDB
列族型宽列存储时序数据、日志、IoTCassandra
图数据库节点 + 边社交网络、知识图谱、推荐Neo4j
搜索引擎倒排索引全文检索、日志分析Elasticsearch

4. 选型决策树

需要水平扩展?
  ├── 是 → 需要 ACID 事务?
  │         ├── 是 → NewSQL (TiDB/CockroachDB/Spanner)
  │         └── 否 → NoSQL
  │               ├── 键值查询为主 → Redis/DynamoDB
  │               ├── 文档模型 → MongoDB
  │               ├── 时序数据 → InfluxDB/TimescaleDB
  │               └── 图关系 → Neo4j
  └── 否 → 复杂分析查询为主?
            ├── 是 → ClickHouse/DuckDB/Snowflake
            └── 否 → PostgreSQL / MySQL
                  ├── 需要高级功能(JSON/全文/GIS)→ PostgreSQL
                  └── 追求简单、广泛兼容 → MySQL

PostgreSQL 被称为"世界上最先进的开源关系型数据库",功能丰富(JSONB、数组、范围类型、全文检索、GIS 扩展),适合作为大多数应用的首选数据库。


延伸阅读

继续阅读

探索更多技术文章

浏览归档,发现更多关于系统设计、工具链和工程实践的内容。

全部文章 返回首页

「database」更多文章

  1. 缓存架构演进之路:从单机 Redis 到亿级分布式多级缓存体系
  2. Redis 7.x 重大新特性与架构升级深度解析
  3. Redis 消息队列深度对比:Pub/Sub、Streams 与 Kafka/RabbitMQ 选型指南