Skip to content

数据库

  数据库是现代软件开发的核心基础设施,涵盖了关系型数据库(RDBMS)和 NoSQL 数据库两大类。本模块系统化介绍主流数据库的核心原理、架构设计、优化策略和实战技巧。

数据库分类

┌──────────────────────────────────────────────────────────────────┐
│                        数据库分类                                 │
│                                                                  │
│  ┌─────────────────────┐  ┌─────────────────────────────────┐   │
│  │   关系型数据库(RDBMS)│  │      NoSQL 数据库                 │   │
│  │                     │  │                                  │   │
│  │  · MySQL            │  │  · 文档型:MongoDB               │   │
│  │  · Oracle           │  │  · 键值型:Redis                 │   │
│  │  · PostgreSQL       │  │  · 列族型:HBase、Cassandra      │   │
│  │  · SQL Server       │  │  · 图数据库:Neo4j               │   │
│  │  · DB2              │  │  · 时序型:InfluxDB              │   │
│  └─────────────────────┘  └─────────────────────────────────┘   │
│                                                                  │
│  RDBMS 特点:ACID、强一致性、结构化查询(SQL)、事务支持           │
│  NoSQL 特点:BASE、高扩展性、灵活 Schema、海量数据处理             │
└──────────────────────────────────────────────────────────────────┘

本模块涵盖

数据库类型定位核心特点
MySQL关系型互联网首选开源、高性能、InnoDB、生态丰富
Oracle关系型企业级标杆商业闭源、高可用、RAC、强大 PL/SQL
DB2关系型金融/大型机IBM 出品、高稳定性、大型机兼容
MongoDB文档型 NoSQL灵活存储JSON 文档模型、水平扩展、聚合管道

学习路径建议

入门 → MySQL(最常用)

进阶 → Oracle(理解企业级特性)

扩展 → DB2(了解金融级数据库)

拓展 → MongoDB(掌握 NoSQL 思维)

核心知识点全景

数据库
├── SQL 基础
│   ├── DDL(CREATE / ALTER / DROP)
│   ├── DML(SELECT / INSERT / UPDATE / DELETE)
│   ├── DCL(GRANT / REVOKE)
│   └── TCL(COMMIT / ROLLBACK / SAVEPOINT)
├── 架构设计
│   ├── 存储引擎
│   ├── 内存结构
│   ├── 进程/线程模型
│   └── 日志系统
├── 索引与优化
│   ├── B+Tree 索引
│   ├── 哈希索引
│   ├── SQL 执行计划
│   └── 慢查询优化
├── 事务与锁
│   ├── ACID 特性
│   ├── 隔离级别
│   ├── MVCC 机制
│   └── 锁类型(行锁/表锁/间隙锁)
├── 高可用
│   ├── 主从复制
│   ├── 分库分表
│   ├── 读写分离
│   └── 集群方案
└── 运维管理
    ├── 备份恢复
    ├── 监控告警
    └── 性能调优

面试重点

  • MySQL InnoDB 存储引擎架构
  • B+Tree 索引原理与优化
  • 事务隔离级别与 MVCC
  • SQL 优化实战(Explain 分析)
  • 主从复制与分库分表方案
  • MongoDB 复制集与分片集群
  • Oracle RAC 与高可用架构