一、慢查询诊断
slow_query_log:记录执行时间超过指定阈值的SQL
long_query_time:设置慢查询阈值,默认10秒
- 通过
slow_log分析SQL性能瓶颈,找出需要优化的查询
二、SQL消耗阶段分析
- InnoDB聚簇索引:数据按主键顺序存储,二级索引包含主键值
- 排序原理:
- 优先队列:适用于limit查询
- 归并排序:适用于全量数据排序
- Join算法:
- Nested Loop:逐行扫描,适合小表
- Hash Join:构建哈希表,适合大表连接
三、DDL操作
- Copy:创建临时表,数据拷贝,适用于大幅度修改
- Inplace:原地修改,减少数据拷贝
- Instant:元数据修改,最快速的DDL操作
四、在线DDL
- 原理:通过触发器记录变更
- 过程:建立新表结构→数据迁移→增量同步→切换
- 优势:业务无感知,最小化停机时间
五、Binlog机制
- 格式:
- ROW:记录行变更
- STATEMENT:记录SQL语句
- MIXED:混合模式
- 主从复制:异步/半同步/同步复制