1. MySQL核心知识体系梳理
MySQL作为最流行的开源关系型数据库,其知识体系涵盖安装配置、SQL语法、性能优化、高可用架构等多个维度。根据我十年DBA经验,系统性的复习应该从以下几个核心模块展开:
1.1 基础架构与存储引擎
MySQL采用经典的C/S架构,核心组件包括连接池、SQL接口、解析器、优化器、缓存和存储引擎层。其中InnoDB作为默认引擎,其关键特性包括:
- 支持ACID事务(通过undo log实现回滚)
- 行级锁与MVCC并发控制
- 聚簇索引组织表结构
- 外键约束支持
生产环境强烈建议使用InnoDB,MyISAM仅适用于读密集型且不需要事务的场景
1.2 SQL语法精要
1.2.1 DDL操作规范
sql复制-- 建表示例(注意字符集和存储引擎)
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `idx_username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
1.2.2 复杂查询优化
- JOIN操作遵循小表驱动大表原则
- 避免使用SELECT * 只查询必要字段
- 使用EXPLAIN分析执行计划
1.3 索引设计与优化
1.3.1 B+树索引原理
- 非叶子节点存储索引键值和指针
- 叶子节点形成双向链表便于范围查询
- 索引高度通常3-4层(可支撑千万级数据)
1.3.2 复合索引设计
- 遵循最左前缀原则
- 区分度高的字段靠左
- 避免过度索引(一般单表不超过5个)
1.4 事务与锁机制
1.4.1 事务隔离级别对比
| 隔离级别 | 脏读 | 不可重复读 | 幻读 | 实现方式 |
