|
优化MySQL配置 彼得·扎伊采夫 Percona首席执行官 Percona MySQL的大学社区 |
|
议程
- MySQL 配置文件优化基础知识
- 配置MySQL的工具
- 介绍部分重要的变量选项
|
|
关于MySQL 配置文件需要掌握的内容
- 默认配置比较差
- Mysql配置不应该按服务器的规格比例去放大配置选项的值
- 要了解你改变了什么
- 不假思索的Google(绝大时候是百度,你懂的)复制/粘贴可不好
- 避免被改变后的混乱(这里应该理解为:设置不同的情况,试验了之后得出结果,避免错误产生)
- 设置10个变量有可能提高95%的性能在95%的案例里面
- 提防Mysql“Sample Configs”的配置
- 他们(那些配置)太过时
- 2G内存“很大”是什么时代的事了?
|
|
大多数配置不应该缩放(对比服务器的规格进行缩放)
- 将服务器的内存扩展8倍,你不能只是简单的将所有的配置变量乘以8
- 16GB的内存扩展到128GB的内存(这是个栗子)
- sort_buffer_size 4MB变成32MB 简直作死(在没有确认知道整体服务器的情况,下文有说为啥)
|
|
理解范围和单位
- sort_buffer_size=16G
- 错!sort_buffer_size是设置每个连接的配置
- table_cache_size=64M
|
|
设置本地变量
- 许多变量是会话级别的
- 为一些复杂查询设置会话变量而不是全局变量:
mysql> set session sort_buffer_size=16*1024*1024; Query OK,0 rows affected ( 0.00 sec ) |
|
避免基本误区
- 在错的配置文件路径配置变量
- 配在/etc/mysql/my.cnf (错误)而不是/etc/my.cnf
- 提防那些依赖于Linux发行版
- 重复的选项
- 不知道同义词
- table_cache 等价于 table_open_cache
- 配错选项配置区域
- 服务端读取[mysqld],客户端读取[mysql]
|
|
配置管理实践
- 保持配置文件在不同的服务器上同步一样
- 保留更改记录
|
|
不要让Mysql使用Swap分区
- 有一个MySQL数据库,并且分配了太多的内存(这是个前提假设相对下面的)
- 监控swap分区使用(用vmstat密切关注si/so )
- 从安全的缓冲值开始,并逐步增加直到有大量的内存保持free状态
|
|
议程
- MySQL配置优化基础知识
- 用工具配置MySQL
- 观察最重要的配置选项点
|
|
自动化配置调优
- 配置调优工具
- 工具能通过查看状态变量(status variables)给出配置建议
- 咨询工具
- 工具能检查你的配置文件里面典型性错误或者遗漏的地方
- 基本配置创建工具
- 工具能给你配置一个初始化的比默认的配置文件更好的配置文件
|
|
下一页>>
PPT在这里
其中有歧义的地方咨询过公司专业翻译 -- 余小雪 妹子,so,转载请标明出处