Skip to content

数据库

这里包含各种数据库技术的学习资料和实践指南。

内容概览

数据库是现代应用程序的核心组件,本章节涵盖了主流数据库技术的原理、使用方法和最佳实践。

数据库技术

关系型数据库

  • TiDB - 分布式NewSQL数据库 ⭐ 新增

    • 水平扩展能力
    • 分布式事务
    • MySQL协议兼容
    • HTAP混合负载
    • 与MySQL/PostgreSQL/MongoDB对比分析
  • PostgreSQL - 开源对象关系型数据库

    • 高级SQL特性
    • 扩展性强
    • 完整性约束
  • Oracle - 企业级关系型数据库

    • 高性能OLTP
    • 企业级特性
    • RAC集群

NoSQL数据库

  • MongoDB - 面向文档的NoSQL数据库

    • 文档存储和查询
    • 索引优化
    • 集群部署
  • Elasticsearch - 分布式搜索和分析引擎

    • 全文搜索
    • 数据分析
    • 集群架构

分析型数据库

  • ClickHouse - 列式存储OLAP数据库

    • 实时分析
    • 高压缩比
    • 向量化执行
  • Doris - MPP分析型数据库

    • 实时数据仓库
    • 联邦查询
    • 物化视图
  • Druid - 实时分析数据库

    • 时序数据
    • 实时摄取
    • 快速聚合

数据库选型对比

场景驱动的选择

场景推荐数据库理由
大规模OLTPTiDB, CockroachDB水平扩展,分布式事务
传统应用MySQL, PostgreSQL成熟稳定,生态丰富
实时分析ClickHouse, Doris列式存储,查询性能高
全文搜索Elasticsearch倒排索引,搜索能力强
文档存储MongoDB灵活Schema,水平扩展
时序数据InfluxDB, TimescaleDB专为时序优化
图数据Neo4j图遍历算法
HTAP混合TiDB, Doris同时支持OLTP和OLAP

技术特性对比

数据库类型扩展性事务SQL适用规模
TiDBNewSQL水平扩展分布式ACID完整SQLTB-PB
MySQLRDBMS垂直扩展ACID完整SQLGB-TB
PostgreSQLORDBMS垂直扩展ACID完整SQL+GB-TB
MongoDB文档型水平扩展ACIDMQLTB-PB
ClickHouse列式OLAP水平扩展有限SQL子集TB-PB
Elasticsearch搜索引擎水平扩展DSLTB-PB

NewSQL vs 传统RDBMS

NewSQL特点(如TiDB、CockroachDB):

  • ✅ 水平扩展能力
  • ✅ 分布式事务
  • ✅ 高可用自动化
  • ✅ 云原生架构
  • ⚠️ 运维复杂度高
  • ⚠️ 生态相对年轻

传统RDBMS(如MySQL、PostgreSQL):

  • ✅ 成熟稳定
  • ✅ 生态丰富
  • ✅ 运维简单
  • ✅ 性能可预测
  • ❌ 扩展性受限
  • ❌ 高可用需额外方案

学习建议

  1. 理解数据模型 - 掌握不同数据库的数据模型特点
  2. 学习查询语言 - 熟悉各数据库的查询语法
  3. 性能优化 - 了解索引、分片等优化技术
  4. 运维部署 - 掌握集群部署和运维技巧
  5. 场景匹配 - 根据业务特点选择合适的数据库

应用场景

互联网应用

  • OLTP: TiDB, MySQL + 分库分表
  • OLAP: ClickHouse, Doris
  • 缓存: Redis
  • 搜索: Elasticsearch

金融系统

  • 核心系统: TiDB, Oracle
  • 实时风控: TiDB + TiFlash
  • 历史数据: ClickHouse

物联网

  • 时序数据: InfluxDB, TimescaleDB
  • 设备数据: MongoDB
  • 实时分析: Doris

电商平台

  • 订单系统: TiDB, MySQL
  • 商品搜索: Elasticsearch
  • 用户画像: ClickHouse
  • 推荐系统: MongoDB + Redis

正在精进