Skip to content

数据库技术栈 ​

数据库是现代应用系统的核心组件,负责数据的存储、检索和管理。本章介绍关系型数据库、NoSQL数据库、新SQL数据库和数据库生态系统。

关系型数据库 ​

MySQL ​

  • 特性: 开源免费、性能优秀、生态完善
  • 版本: MySQL 8.0 (当前主流)、MySQL 5.7 (LTS)
  • 存储引擎: InnoDB (默认)、MyISAM、Memory、Archive
  • 高可用: 主从复制、MHA、MySQL Router、ProxySQL
  • 监控: MySQL Enterprise Monitor、Percona Monitoring
  • 最佳实践: 索引优化、查询优化、分库分表

PostgreSQL ​

  • 特性: 功能丰富、标准兼容、扩展性强
  • 版本: PostgreSQL 15 (最新)、PostgreSQL 13 (LTS)
  • 扩展: PostGIS (地理空间)、TimescaleDB (时序)、Citus (分布式)
  • JSON支持: JSONB类型、GIN索引、查询优化
  • 并发控制: MVCC、多版本并发控制、事务隔离
  • 监控: pg_stat_statements、pgBadger、pgHero

Oracle Database ​

  • 特性: 企业级、功能全面、性能卓越
  • 版本: Oracle 19c、Oracle 21c、Oracle 23c
  • 特性: RAC (Real Application Clusters)、Data Guard、Partitioning
  • 云服务: Oracle Autonomous Database、Exadata Cloud
  • 监控: Oracle Enterprise Manager、AWR报告
  • 最佳实践: 表空间管理、备份策略、性能调优

SQL Server ​

  • 特性: Windows生态、BI集成、企业功能
  • 版本: SQL Server 2022、SQL Server 2019
  • 特性: Always On AG、Columnstore索引、In-Memory OLTP
  • 云服务: Azure SQL Database、Azure SQL Managed Instance
  • 监控: SQL Server Management Studio、Dynamic Management Views
  • 最佳实践: 索引策略、统计信息维护、执行计划分析

NoSQL数据库 ​

MongoDB ​

  • 特性: 文档数据库、灵活模式、水平扩展
  • 版本: MongoDB 7.0、MongoDB 6.0 (LTS)
  • 特性: 分片集群、副本集、Change Streams、Aggregation Pipeline
  • 查询: MongoDB Query Language、索引优化、聚合框架
  • 监控: MongoDB Atlas、Ops Manager、Cloud Manager
  • 最佳实践: 模式设计、索引策略、分片键选择

Redis ​

  • 特性: 内存数据库、高性能、丰富数据结构
  • 版本: Redis 7.2、Redis 6.2 (LTS)
  • 数据结构: String、Hash、List、Set、Sorted Set、Stream、JSON
  • 特性: 持久化、主从复制、哨兵模式、集群模式
  • 应用场景: 缓存、会话存储、排行榜、发布订阅
  • 监控: Redis Insight、redis-cli info、第三方监控
  • 最佳实践: 内存管理、持久化策略、集群配置

Cassandra ​

  • 特性: 分布式数据库、高可用、线性扩展
  • 版本: Cassandra 4.1、Cassandra 3.11 (LTS)
  • 特性: 一致性哈希、Gossip协议、 hinted handoff
  • 查询: CQL (Cassandra Query Language)、二级索引、物化视图
  • 监控: Cassandra nodetool、JMX、第三方工具
  • 最佳实践: 数据建模、分区键设计、一致性级别

Elasticsearch ​

  • 特性: 搜索引擎、实时分析、分布式架构
  • 版本: Elasticsearch 8.11、Elasticsearch 7.17 (LTS)
  • 特性: 倒排索引、聚合分析、地理位置搜索
  • 生态: Kibana (可视化)、Logstash (数据管道)、Beats (数据采集)
  • 监控: Elasticsearch监控、Kibana监控、第三方APM
  • 最佳实践: 索引设计、映射配置、集群优化

NewSQL数据库 ​

TiDB ​

  • 特性: 分布式关系数据库、MySQL兼容、HTAP
  • 版本: TiDB 7.5、TiDB 6.5 (LTS)
  • 架构: TiKV (存储层)、TiDB (SQL层)、PD (调度层)
  • 特性: 水平扩展、强一致性、ACID事务
  • 生态: TiSpark (分析引擎)、TiCDC (数据同步)
  • 监控: TiDB Dashboard、Grafana监控
  • 最佳实践: 表设计、分区策略、性能调优

CockroachDB ​

  • 特性: 云原生分布式数据库、PostgreSQL兼容
  • 版本: CockroachDB 23.1、CockroachDB 22.2 (LTS)
  • 特性: 多活架构、序列化隔离、地理分区
  • 云服务: CockroachDB Cloud、CockroachDB Serverless
  • 监控: CockroachDB Console、Prometheus集成
  • 最佳实践: 多区域部署、备份策略、性能监控

YugabyteDB ​

  • 特性: 分布式SQL数据库、PostgreSQL兼容
  • 版本: YugabyteDB 2.19、YugabyteDB 2.18 (LTS)
  • 架构: YB-TServer (查询层)、YB-Master (管理层)
  • 特性: 多模型支持、xCluster复制、备份恢复
  • 监控: YugabyteDB Anywhere、Prometheus监控
  • 最佳实践: 分区设计、索引优化、集群管理

时序数据库 ​

InfluxDB ​

  • 特性: 专为时序数据设计、高写入性能
  • 版本: InfluxDB 2.7、InfluxDB 1.8 (LTS)
  • 特性: Flux查询语言、连续查询、数据保留策略
  • 生态: Telegraf (数据采集)、Chronograf (可视化)
  • 监控: InfluxDB监控、第三方集成
  • 最佳实践: 数据建模、保留策略、查询优化

TimescaleDB ​

  • 特性: PostgreSQL扩展、时序优化
  • 版本: TimescaleDB 2.13、TimescaleDB 2.12 (LTS)
  • 特性: 自动分区、连续聚合、压缩存储
  • 查询: SQL查询、时间桶聚合、超表
  • 监控: PostgreSQL监控工具、TimescaleDB扩展
  • 最佳实践: 超表设计、分区策略、性能调优

Prometheus ​

  • 特性: 监控指标数据库、多维数据模型
  • 版本: Prometheus 2.47、Prometheus 2.46 (LTS)
  • 特性: PromQL查询、告警规则、服务发现
  • 生态: Grafana (可视化)、Alertmanager (告警)
  • 监控: 自监控、第三方集成
  • 最佳实践: 指标设计、查询优化、存储配置

图数据库 ​

Neo4j ​

  • 特性: 原生图数据库、Cypher查询语言
  • 版本: Neo4j 5.17、Neo4j 4.4 (LTS)
  • 特性: ACID事务、图算法、模式约束
  • 生态: Neo4j Browser、APOC库、Graph Data Science
  • 监控: Neo4j监控、性能分析
  • 最佳实践: 图建模、索引设计、查询优化

JanusGraph ​

  • 特性: 分布式图数据库、可扩展架构
  • 版本: JanusGraph 0.6.4、JanusGraph 0.5.3 (LTS)
  • 存储后端: Cassandra、HBase、BerkeleyDB
  • 特性: 图遍历、索引支持、事务处理
  • 监控: JMX监控、第三方工具
  • 最佳实践: 后端选择、索引策略、性能调优

数据库生态 ​

数据迁移 ​

  • ETL工具: Apache Nifi、Talend、Pentaho
  • 迁移工具: pgloader (PostgreSQL)、mongomirror (MongoDB)
  • 同步工具: Debezium (CDC)、Canal (MySQL binlog)
  • 最佳实践: 增量迁移、数据验证、回滚策略

备份恢复 ​

  • 备份工具: mysqldump、pg_dump、mongodump
  • 云备份: AWS Backup、Azure Backup、GCP Backup
  • 恢复策略: 冷备、热备、快照恢复
  • 最佳实践: RTO/RPO定义、定期测试、灾难恢复

监控告警 ​

  • APM工具: New Relic、Datadog、Dynatrace
  • 开源监控: Zabbix、Nagios、Prometheus+Grafana
  • 数据库监控: Percona Monitoring、SolarWinds DPA
  • 最佳实践: 指标收集、阈值设置、告警策略

安全管理 ​

  • 访问控制: RBAC、用户权限、审计日志
  • 加密: 传输加密、存储加密、密钥管理
  • 合规: GDPR、HIPAA、数据脱敏
  • 最佳实践: 最小权限原则、安全审计、漏洞扫描

数据库设计 ​

概念设计 ​

  • ER模型: 实体关系图、属性定义、关系类型
  • 规范化: 第一范式、第二范式、第三范式
  • 反规范化: 性能优化、冗余设计、物化视图
  • 最佳实践: 业务理解、需求分析、迭代设计

物理设计 ​

  • 索引设计: 主键索引、唯一索引、复合索引
  • 分区策略: 范围分区、哈希分区、列表分区
  • 存储优化: 数据类型选择、压缩技术、存储引擎
  • 最佳实践: 性能测试、监控调优、容量规划

数据建模 ​

  • 维度建模: 星型模式、雪花模式、事实表设计
  • 文档建模: 嵌入式设计、引用设计、模式演进
  • 图建模: 节点设计、关系设计、属性定义
  • 最佳实践: 访问模式分析、模式灵活性、扩展性考虑

性能优化 ​

查询优化 ​

  • 执行计划: 查询分析、索引使用、连接顺序
  • SQL调优: 查询重写、索引优化、统计信息
  • 缓存策略: 查询缓存、应用缓存、分布式缓存
  • 最佳实践: 慢查询分析、性能监控、持续优化

系统优化 ​

  • 硬件优化: CPU、内存、存储、网络配置
  • 参数调优: 缓冲区大小、连接数限制、超时设置
  • 架构优化: 读写分离、分库分表、分布式部署
  • 最佳实践: 基准测试、负载测试、容量规划

并发控制 ​

  • 锁机制: 表锁、行锁、MVCC、乐观锁
  • 事务管理: 隔离级别、死锁处理、回滚策略
  • 连接池: 连接复用、池大小配置、监控管理
  • 最佳实践: 并发测试、锁竞争分析、性能监控

未来展望 ​

云原生数据库 ​

  • DBaaS: 托管服务、自动扩展、按需付费
  • 多云部署: 数据一致性、故障转移、合规性
  • Serverless: 自动伸缩、零管理、事件驱动
  • 最佳实践: 成本优化、性能监控、安全配置

AI增强数据库 ​

  • 智能优化: 查询优化、索引推荐、性能预测
  • 自然语言查询: SQL生成、语义理解、对话式交互
  • 异常检测: 性能异常、数据异常、安全威胁
  • 最佳实践: AI辅助设计、自动化运维、智能监控

新兴技术 ​

  • 区块链数据库: 分布式账本、不可变性、智能合约
  • 量子数据库: 量子计算、加密增强、安全提升
  • 边缘数据库: 边缘计算、本地存储、同步机制
  • 最佳实践: 技术评估、试点应用、渐进式迁移

Elasticsearch ​

  • 全文搜索: 倒排索引、分析器、分词器
  • 分布式架构: 集群、分片、副本、自动发现
  • 聚合分析: 桶聚合、指标聚合、管道聚合
  • 实时特性: 近实时搜索、索引刷新、事务日志

新型数据库 ​

图数据库 ​

  • Neo4j: 属性图模型、Cypher查询语言
  • 图算法: 最短路径、中心性、社区检测
  • 应用场景: 社交网络、知识图谱、推荐系统
  • 性能优化: 索引、缓存、查询优化

时序数据库 ​

  • InfluxDB: 时间序列数据、高效存储压缩
  • 数据模型: 测量、标签、字段、时间戳
  • 查询特性: 时间范围查询、聚合函数、下采样
  • 集群部署: 高可用性、水平扩展

向量数据库 ​

  • Milvus: 向量相似性搜索、ANN算法
  • 索引算法: IVF、HNSW、PQ量化
  • 分布式架构: 集合、分片、副本管理
  • 应用场景: 图像检索、推荐系统、NLP

数据库架构设计 ​

数据建模 ​

  • 概念模型: ER图、实体关系、业务规则
  • 逻辑模型: 关系模型、规范化、反规范化
  • 物理模型: 表结构、索引设计、约束定义
  • 维度建模: 星型模式、雪花模式、事实表

索引设计 ​

  • 索引类型: 主键索引、唯一索引、普通索引
  • 复合索引: 多列索引、最左前缀原则
  • 索引优化: 覆盖索引、索引合并、索引选择性
  • 维护策略: 重建索引、更新统计信息

分区策略 ​

  • 范围分区: 按值范围划分、历史数据归档
  • 哈希分区: 均匀分布、随机访问优化
  • 列表分区: 枚举值分区、离散值处理
  • 复合分区: 多级分区、灵活管理

复制与同步 ​

  • 主从复制: 异步复制、半同步复制
  • 多主复制: 冲突解决、数据合并
  • 逻辑复制: 发布订阅、选择性复制
  • 数据同步: ETL工具、Change Data Capture

性能优化 ​

查询优化 ​

  • 执行计划: 查询解析、优化器选择、执行路径
  • 统计信息: 表统计、索引统计、柱状图
  • 查询重写: 子查询优化、连接优化、谓词下推
  • 缓存机制: 查询缓存、结果缓存、应用缓存

系统调优 ​

  • 内存配置: 缓冲池、排序缓冲、连接缓冲
  • I/O优化: RAID配置、SSD存储、预读策略
  • 并发控制: 锁粒度、死锁检测、事务隔离
  • 资源管理: CPU调度、内存分配、连接池

监控诊断 ​

  • 性能指标: QPS、TPS、响应时间、资源利用率
  • 慢查询分析: 慢查询日志、EXPLAIN分析
  • 系统负载: CPU使用率、内存使用率、磁盘I/O
  • 告警机制: 阈值设置、自动告警、趋势分析

高可用架构 ​

故障转移 ​

  • 自动切换: 主从切换、集群选举、VIP漂移
  • 数据一致性: 脑裂防护、多数派原则
  • 恢复时间: RTO指标、RPO指标、业务影响
  • 测试验证: 故障演练、恢复测试、业务验证

负载均衡 ​

  • 读写分离: 主库写入、从库读取、负载分配
  • 分库分表: 水平拆分、垂直拆分、路由策略
  • 分布式缓存: 多级缓存、缓存同步、一致性哈希
  • 连接池: 连接复用、池大小调优、健康检查

备份恢复 ​

  • 备份策略: 全量备份、增量备份、差异备份
  • 恢复方案: 点时间恢复、灾难恢复、跨地域备份
  • 备份验证: 备份完整性、恢复测试、数据一致性
  • 自动化: 备份调度、监控告警、生命周期管理

数据安全 ​

访问控制 ​

  • 用户管理: 用户角色、权限分配、最小权限原则
  • 认证机制: 密码认证、证书认证、多因子认证
  • 授权模型: RBAC、ABAC、基于策略的访问控制
  • 审计日志: 操作审计、访问日志、安全事件

数据加密 ​

  • 传输加密: SSL/TLS、证书管理、加密协议
  • 存储加密: 透明加密、文件系统加密、应用层加密
  • 密钥管理: 密钥生成、轮换、备份、安全存储
  • 合规要求: 数据保护法规、行业标准

数据脱敏 ​

  • 脱敏技术: 数据遮罩、随机化、格式保留
  • 生产数据: 测试环境、开发环境、数据安全
  • 隐私保护: PII识别、敏感数据处理
  • 合规审计: 数据使用追踪、访问控制

云数据库 ​

云原生数据库 ​

  • 服务化: 数据库即服务、按需付费、弹性伸缩
  • 托管服务: 自动备份、补丁管理、高可用性
  • 多租户: 资源隔离、安全隔离、性能隔离
  • 集成生态: 与云服务深度集成、开发工具支持

数据库迁移 ​

  • 评估规划: 兼容性评估、性能评估、成本分析
  • 迁移策略: 大爆炸迁移、渐进式迁移、混合云
  • 数据同步: 实时同步、批量迁移、增量同步
  • 测试验证: 功能测试、性能测试、业务验证

混合云架构 ​

  • 数据分布: 本地数据、云端数据、数据同步
  • 访问模式: 直接访问、代理访问、缓存访问
  • 安全合规: 数据主权、合规要求、跨境传输
  • 成本优化: 资源调度、自动伸缩、费用控制

数据库发展趋势 ​

NewSQL数据库 ​

  • SQL兼容: 传统SQL语法、ACID事务、关系模型
  • 分布式扩展: 水平扩展、高可用性、强一致性
  • 性能优化: 内存计算、向量化执行、并发优化
  • 代表产品: TiDB、CockroachDB、YugabyteDB

湖仓一体 ​

  • 数据湖: 开放格式、多样数据、成本优化
  • 数据仓库: 结构化查询、性能优化、分析能力
  • 一体化: 统一元数据、统一安全、统一治理
  • 技术栈: Delta Lake、Apache Hudi、Apache Iceberg

边缘数据库 ​

  • 边缘计算: 本地数据处理、低延迟响应
  • 数据同步: 云边协同、冲突解决、离线支持
  • 轻量级: 资源受限、嵌入式部署、移动设备
  • 应用场景: IoT设备、移动应用、离线应用

数据库网格 ​

  • 服务网格: 数据库代理、流量控制、服务发现
  • 多云支持: 云厂商中立、混合部署、迁移自由
  • 可观测性: 性能监控、链路追踪、日志聚合
  • 自动化: 智能调度、自动扩容、自愈能力