性能优化专题
性能优化是 MySQL 面试的实战重点,涵盖 SQL 优化、索引设计、表结构优化等多个方面。
常见题型
| 题型 | 核心知识点 | 典型问题 |
|---|---|---|
| 慢查询定位 | slow_query_log、EXPLAIN | 如何定位慢查询 |
| SQL 优化 | 索引使用、避免全表扫描 | 如何优化慢 SQL |
| 索引设计 | 联合索引、最左前缀 | 如何设计索引 |
| 表结构优化 | 字段类型、范式与反范式 | 如何优化表结构 |
| 分库分表 | 水平拆分、垂直拆分 | 何时分库分表 |
| 主从复制 | binlog、主从延迟 | 如何优化主从复制 |
SQL 优化优先级
| 优先级 | 优化项 | 效果 |
|---|---|---|
| 1 | 添加索引 | ⭐⭐⭐⭐⭐ |
| 2 | 优化查询条件 | ⭐⭐⭐⭐ |
| 3 | 优化表结构 | ⭐⭐⭐ |
| 4 | 分库分表 | ⭐⭐ |
索引设计原则
| 原则 | 说明 |
|---|---|
| 区分度高 | 选择区分度高的列 |
| 最左前缀 | 联合索引按最左前缀匹配 |
| 覆盖索引 | 索引包含查询字段 |
| 避免冗余 | 避免重复索引 |
表结构优化
| 优化 | 说明 |
|---|---|
| 字段类型 | 使用合适的数据类型 |
| 范式与反范式 | 平衡查询和更新 |
| 垂直拆分 | 大表拆分为小表 |
| 水平拆分 | 数据按规则拆分 |
