2016.4.20
KVM虚拟化实践社区&知数堂
联合在线分享《从案例说InnoDB的基本优化》圆满结束
本文进行总结并且发布视频&PPT资源
分享主题
《从案例说InnoDB的基本优化》
嘉宾介绍
叶金荣,资深MySQL专家,ORACLE MySQL ACE
国内最早的MySQL推广者,从事MySQL相关工作10余年,擅长MySQL性能优化。
个人网站 http://imysql.com 始建于2006年,是国内第一个MySQL专业技术站点
个人公众号:MySQL中文网(imysql_wx)
主题介绍
从一个MySQL的ibdata1文件size急剧暴增的案例说起,具体深入解读原因,并由此展开来讲讲如何对InnoDB引擎进行优化。
Agenda
a. MySQL的ibdata1文件size暴增案例解析
b. MySQL InnoDB引擎特点介绍
c. MySQL InnoDB引擎优化建议
问题交流
Q1:长时间执行的事务 因为增长 强行杀掉 会不会出现回滚需要更长时间?
答:发生大事务回滚时,如果把mysqld进程强行kill,在MySQL 5.5以前的版本确实会比较慢;而从5.5及以后的版本中,做就很快了,大概也就最多1-2分钟。
如果不是强行把mysqld进程kill,只是把大事务所在线程kill导致事务回滚,那么就需要较久的时间了,因此强烈建议几点:
a. 不要在一个事务中修改大量数据;
b. 不要直接做Online DDL,有需要的话,可以用pt-osc工具,避免DDL过程中发生异常导致回滚;
c. 需要插入/更新/删除大量数据时,可以分成多批次来执行,每次及时提交事务;
Q2:innodb_max_dirty_pages_pct 默认值为75%,叶老师的建议是改成25-50%,为何相差如此之大
答:一般而言,25%~50%是比较合适的,这个选项设置太高的话容易因为buffer pool中的脏页太多,导致刷新时瞬间I/O负载较高而影响整体TPS的稳定性,出现较大波动。
Q3:autocommit=0时,如果 一个SELECT 事物 start 后 不commit/rollback,直接close会不会增加 undo 空间?
答:一个连接直接close时,会是的该连接中的事务直接被rollback,相当于事务结束了,不会导致增加undo。
Q4:purge THREAD 可以开启多个,可以提高UNDO LOG删除吗,开启多个PURGE THREAD根据什么因素
答:增加purge thread数量一般情况下显然可以提高undo log的purge效率,除非当前I/O已经达到瓶颈。通常是因为undo log的purge速度比较慢,有较大积压,而且当前的I/O负载还没成为瓶颈时,就可以适当增加purge thread。
Q5:不同版本迁移需要注意什么吗32--64
答:不要一下子跨大版本升级通常都没事,比如从5.1 => 5.5,从5.5 => 5.6,尽量不要直接从5.1 => 5.6。
跨版本的种升级最好是认真看一遍官方手册,确认两个版本之间的一些不兼容变化,确认是否会影响升级过程,比如5.6相比5.5而言datetime字段类型就发生了实质性变化,需要特别注意。
而比如说从5.6.20 => 5.6.27,则一般可以放心直接升级。
Q6:请问生产环境在线修改调整innodb参数配置,会有什么影响没有?有哪些注意事项没有?
答:首先,有些选项可以被在线修改,有些则不可以,要看具体是哪个,相应产生的影响也要看改了哪个参数。
比如,我们可以在线修改innodb_flush_log_at_trx_commit选项,将其值从0改为1,这就有可能导致tps性能急剧下降,但却可以进一步保证数据的可靠性。
总之,要具体问题具体分析,一两句话说不清楚。
Q7:看过叶大师的博客,叶大师以前也用过zabbix, 请问大师可否对ZBX的数据库优化提提建议?谢谢。数据量大了的情况,删个host都比较慢,有lock wait 现象。
答:建议先采用表分区的方式把数据打散一下,这样根据时间删除旧数据就相对更快一些了。其次,删除host时,可以考虑采用自定义删除方式,大概做法是依次扫描各个表进行删除,且每次删除时都用LIMIT限定记录数,不要瞬间删除大量数据。最后呢,可以采用tokudb引擎来压缩数据,从我们的使用经验来看,还是挺不错的。
Q8:如何不停机在线升级
答:可以采用主从切换的方式进行升级。
Q9:有些什么主要因素影响binlog大小?
答:每秒产生的事件数直接影响binlog的大小。另外,在个别情况下,binlog format的不同,也可能会影响binlog的大小。比如,一个更新数十万行记录的UPDATE语句在STATEMENT格式下只需记录一次,而在ROW格式下,则需要记录数十万次,这就不仅仅相差几倍了。
视频、录音、PPT下载
本次活动的视频、录音、PPT已在百度云盘上提供下载,链接: http://pan.baidu.com/s/1gfLL2rL ,提取密码: 8fcd ,敬请下载转存。