开发者学堂课程【云数据库优化十大典型案例:案例5:参数优化】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/597/detail/8569
案例5:参数优化
内容介绍:
1. 案例及分析
2. 判别
3. 结论
一. 案例及分析
1. 案例
(1)背景介绍
某客户正在将本地的业务系统迁移上云,在 rds 上运行时间明显要比线下自建数据库运行时间要慢1倍,导致客户系统割接延期的风险。
(2)关键词
上云、RDS、自建、慢1倍
2.经验分析
(1)数据库跨平台迁移(PG->MySQL、ORALCE->MySQL)
(2)跨版本升级(MySQL:5.1->5.5、5.5->5.6)
(3)执行计划,优化器,参数配置,硬件配置
注意:
大版本发生变迁会影响SQL的执行计划,而SQL执行计划会受制于优化器的参数。
二. 判别
1. 确定优化器版本
用户:5.6
RDS:5.6
可以发现:用户本地的优化器和云上的优化器基本没有发生变化
2. 确定SQL执行计划
Rows=39900*1*1*140*285*1*1*1*1*1*1*1
方法:可以把每一行的rows乘起来(由于MySQL是嵌套循环)
可以发现:rows 基本没有发生变化
3.确定参数配置
用户配置:join_buffer_size=128M
Read_rnd_buffer_size=128M
Tmp_table_size=128M
RDS配置:join_buffer_size=1M
Read_rnd_buffer_size=1M
Tmp_table_size=256K
可以发现:用户配置相对于云上对三个参数有特别大的调高
4.验证
(1)tmp-table-size由256K调整至128M
三.结论
1.排查思路
(1)查看 SQL 执行计划;
(2)查看数据库版本和优化器规则;
(3)对比参数设置;
(4)对比硬件设置;
2.最佳实践
(1)Query-vsvhe-size;
(2)Temp-table-size;
(3)Tokudb-buffer-pool-ratio;
(4)Back-log;