标签归档:知数堂

干货分享《如何系统的学好Python》

知数堂公开课《如何系统的学好Python》,详情请见『老叶茶馆』微信公众号图文分享

本次分享的视频地址请见百度云盘,链接: https://pan.baidu.com/s/1c21PxtA,密码: 7wxo

附视频及ppt:在线分享《从案例说InnoDB的基本优化》总结

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格式下,则需要记录数十万次,这就不仅仅相差几倍了。

Q10:请问培训费用是?

答:我们的MySQL DBA培训分为实战和优化两个班级,单报分别是3500元、3800元,双班一起报则只需7000元。Python班级是4000元。针对KVM社区的同学我们有特别的优惠,详见下方介绍 。

视频、录音、PPT下载

本次活动的视频、录音、PPT已在百度云盘上提供下载,链接: http://pan.baidu.com/s/1gfLL2rL ,提取密码: 8fcd ,敬请下载转存。

关于知数堂

“知数堂MySQL DBA培训”是由资深MySQL专家叶金荣、吴炳锡联合推出的MySQL DBA专业优质培训课程,这也是目前业内最有良心、最有品质的MySQL DBA培训课程。

目前第七期火爆开班中,学员已超300多人位,多位优秀学员学成后先后入职(或在职)腾讯、淘宝、京东、乐视、去哪儿、滴滴、猎豹、58、微博、金山云、聚美、苏宁、恩墨、沃趣、爱可生、37玩、人人贷、美的、新东方、平安金融等众多知名公司,在获得更好的职业发展机遇同时薪资也得到了大幅提升。

课程总耗时约90学时,每周一至周四晚上20:30 – 22:30上课,前后历时约2.5个月,由叶、吴两位大师倾心亲授,毫无保留,该课程特别适合运维工程师、开发工程师、架构师、ORACLE DBA、SQL Server DBA来参加,愿我们的课程能为您的职业发展道路助力腾飞。

为答谢KVM社区对知数堂培训的支持,我们推出KVM社区成员报名优惠码:KVMZSTYH(有效期截止 2016.4.30),凡是最终报名参加知数堂各课程均可利用该优惠码获得直降200元特权,欢迎大家加入QQ群:529671799、373900864垂询,或加QQ:982892381 、 1037447289 、 619987610 、 82565387 、 4700963等,或者直接访问知数堂官方淘宝店 http://zhishuedu.com

相关活动:在线分享《从案例说InnoDB的基本优化》

我们的培训大纲:知数堂MySQL DBA培训大纲

最后,再一次感谢肖力以及KVM社区的大力支持!