数据库
这里包含各种数据库技术的学习资料和实践指南。
内容概览
数据库是现代应用程序的核心组件,本章节涵盖了主流数据库技术的原理、使用方法和最佳实践。
数据库技术
关系型数据库
TiDB - 分布式NewSQL数据库 ⭐ 新增
- 水平扩展能力
- 分布式事务
- MySQL协议兼容
- HTAP混合负载
- 与MySQL/PostgreSQL/MongoDB对比分析
PostgreSQL - 开源对象关系型数据库
- 高级SQL特性
- 扩展性强
- 完整性约束
Oracle - 企业级关系型数据库
- 高性能OLTP
- 企业级特性
- RAC集群
NoSQL数据库
MongoDB - 面向文档的NoSQL数据库
- 文档存储和查询
- 索引优化
- 集群部署
Elasticsearch - 分布式搜索和分析引擎
- 全文搜索
- 数据分析
- 集群架构
分析型数据库
ClickHouse - 列式存储OLAP数据库
- 实时分析
- 高压缩比
- 向量化执行
Doris - MPP分析型数据库
- 实时数据仓库
- 联邦查询
- 物化视图
Druid - 实时分析数据库
- 时序数据
- 实时摄取
- 快速聚合
数据库选型对比
场景驱动的选择
| 场景 | 推荐数据库 | 理由 |
|---|---|---|
| 大规模OLTP | TiDB, CockroachDB | 水平扩展,分布式事务 |
| 传统应用 | MySQL, PostgreSQL | 成熟稳定,生态丰富 |
| 实时分析 | ClickHouse, Doris | 列式存储,查询性能高 |
| 全文搜索 | Elasticsearch | 倒排索引,搜索能力强 |
| 文档存储 | MongoDB | 灵活Schema,水平扩展 |
| 时序数据 | InfluxDB, TimescaleDB | 专为时序优化 |
| 图数据 | Neo4j | 图遍历算法 |
| HTAP混合 | TiDB, Doris | 同时支持OLTP和OLAP |
技术特性对比
| 数据库 | 类型 | 扩展性 | 事务 | SQL | 适用规模 |
|---|---|---|---|---|---|
| TiDB | NewSQL | 水平扩展 | 分布式ACID | 完整SQL | TB-PB |
| MySQL | RDBMS | 垂直扩展 | ACID | 完整SQL | GB-TB |
| PostgreSQL | ORDBMS | 垂直扩展 | ACID | 完整SQL+ | GB-TB |
| MongoDB | 文档型 | 水平扩展 | ACID | MQL | TB-PB |
| ClickHouse | 列式OLAP | 水平扩展 | 有限 | SQL子集 | TB-PB |
| Elasticsearch | 搜索引擎 | 水平扩展 | 无 | DSL | TB-PB |
NewSQL vs 传统RDBMS
NewSQL特点(如TiDB、CockroachDB):
- ✅ 水平扩展能力
- ✅ 分布式事务
- ✅ 高可用自动化
- ✅ 云原生架构
- ⚠️ 运维复杂度高
- ⚠️ 生态相对年轻
传统RDBMS(如MySQL、PostgreSQL):
- ✅ 成熟稳定
- ✅ 生态丰富
- ✅ 运维简单
- ✅ 性能可预测
- ❌ 扩展性受限
- ❌ 高可用需额外方案
学习建议
- 理解数据模型 - 掌握不同数据库的数据模型特点
- 学习查询语言 - 熟悉各数据库的查询语法
- 性能优化 - 了解索引、分片等优化技术
- 运维部署 - 掌握集群部署和运维技巧
- 场景匹配 - 根据业务特点选择合适的数据库
应用场景
互联网应用
- OLTP: TiDB, MySQL + 分库分表
- OLAP: ClickHouse, Doris
- 缓存: Redis
- 搜索: Elasticsearch
金融系统
- 核心系统: TiDB, Oracle
- 实时风控: TiDB + TiFlash
- 历史数据: ClickHouse
物联网
- 时序数据: InfluxDB, TimescaleDB
- 设备数据: MongoDB
- 实时分析: Doris
电商平台
- 订单系统: TiDB, MySQL
- 商品搜索: Elasticsearch
- 用户画像: ClickHouse
- 推荐系统: MongoDB + Redis
