[技术分享] MySQL线上SQL捕获及分析

作者:吴炳锡 来源:http://wubx.net/ 联系方式: wubingxi#163.com 转载请注明作/译者和出处,并且不能用于商业用途,违者必究.

分享题目:MySQL线上SQL捕获及分析

分享者: 吴炳锡

时间: 2014年11月21日, 20:30-10:30
分享方式: 在线分享,利用QQ+YY,参加同学,提前加入QQ群:373900864 (暗号: 群主是帅哥)

该PPT是在2014 Oracle技术嘉年华上的一个分享,分享后,很多同学在QQ找我聊,怎么做线上SQL的分析之类。当然也有很多同学没能参加,我就是借着网络在此做一次分享,利用网络和大家做一个交流。分享的方式: QQ+YY (没有YY的同学需要注册一个)

优化是DBA或是架构师们在不断追求的方向,也是大家热忠追求的技术,如果说优化是技术里面的屠龙技术,要想去屠龙很重要的技术是要学会寻龙,在分本享中,通过线上SQL捕获,和大家一块讨论一下如何寻找SQL优化中的大龙。

分享内容:

  • 线上捕获SQL方法
  • 基于tcpdump线上SQL抓取
  • 基于查询日志记录
  • 基于慢日志记录全量日志
  • 捕获的SQL分析方法
  • 线上SQL抓取及分析平台化实现

感兴趣的同学请提前加入QQ群: 373900864 更多精彩分享等着你。

MySQL免费技术分享《百万级在线MySQL架构分享》

作者:吴炳锡 来源:http://www.mysqlsupport.cn/ 联系方式: wubingxi#163.com 转载请注明作/译者和出处,并且不能用于商业用途,违者必究.

随着传统企业去IOE的声音越来越大,也有很多朋友来咨询MySQL的架构设计问题,所以决定做这个分享让决定或是想使用MySQL的朋友能从整体上了解一下如何利用MySQL构建一个百万级在线(或是百万并发的架构)
分享时间:2014年8月14日 20:30  在线技术分享

参加朋友加QQ群:159636401 
分享者介绍
吴炳锡 新媒传信 数据库架构师
Blog: http://mysqlsupport.cn

公司数据库托管平台设计及核心开发者
公司海量数据平台设计及开发人员
熟悉MySQL高可用原理及技术实现
丰富的基于MySQL架构设计及规划经验
MySQL中国用户组核心人员 (http://acmug.com/)

建议听众:
面向DBA人员,架构师,基于MySQL开发人员

分享目标:
让大家深入了解MySQL的特性
供基于MySQL开发的同学们做出最佳实践
全面整体上认识MySQL在架构设计中如何进行拆分
了解NoSQL和MySQL是如何结合使用优化架构

想参加分享的同学请提前加入Q群: 159636401  更多精彩分享等着你 :)

这只是一个开始,更多分享,一块来交流。

比较Percona 5.6和Oracle MySQL区别

作者:吴炳锡 来源:http://www.mysqlsupport.cn/ 联系方式: wubingxi#gmail.com 转载请注明作/译者和出处,并且不能用于商业用途,违者必究.

Percona Server 5.6: Enterprise Grade MySQL® with Outstanding Performance

原版PPT猛击:这里

目前讲MySQL5.6 可以说是最好的生产用版本(5.7比5.6更好一点。) 目前5.6可以支持最多64个核(5.5 大概是24个)

Percona-Server是什么:

在MySQL5.6之可以理解为:

Percona Server =MySQL Community
+ Features
+ Bug Fixes
+ Performance Enhancement

 

Percona-Server 5.6 从MySQL5.6后可以理解为:

Percona Server =MySQL Community
+ Features
+ Bug Fixes
+ Performance Enhancement
+MySQL Enterprise Plugins

 

 

 

2013 Oracle技术嘉年华见

作者:吴炳锡 来源:http://www.mysqlsupport.cn/ 联系方式: wubingxi#gmail.com 转载请注明作/译者和出处,并且不能用于商业用途,违者必究.
今年有兴再次去Oracle技术嘉年华分享MySQL相关主题<<高可用MySQL:构建健壮数据中心>>,这次主要分享一下在MySQL高可用方面的一些经验.
大纲如下:
•高可用是什么
•高可用架构
 –基于共享存储
 –基于同步的架构
 –基于NDB的高可用架构
 –基于APP分布式事务或是第三方控制的高可用
•MySQL高可用所要面临的问题
 –高可用能接受的故障时间
 –数据一致性要求
•构建健壮的数据中心如何选型
 –选择较佳的方案
对2013技术嘉年华有兴趣还没买标的同学,我这里给你提供一个优惠码: OTNWBX

折扣票价与官网票价

>> > A票折扣价:800元  (官网票价1080元)

>> > B票折扣价:600元  (官网票价880元)

报名页(http://otn.itpub.net/regist.html

FaceBook开始关注MySQL5.1了

作者:吴炳锡 来源:http://www.mysqlsupport.cn/ 联系方式: wubingxi#gmail.com 转载请注:译者和出处,并且不能用于商业用途,违者必究.

FaceBook开始关注MySQL5.1了 ,说明MySQL5.1开始靠谱了。

MySQL-5.1面世将近一年多的时间了,在2009年大家对MySQL-5.1试用,放弃,最终的无耐。但MySQL总的还是在进步的,差不多到MySQL-5.1.41基本上处于稳定阶段了。到了MySQL-5.1.44好象更是稳定了,本人觉的可以试着用到生产环境了。在Mail列表中,看到好多人对MySQL5-1.44和MySQL-5.1.45有了很高的信心。

FaceBook的关注毕将会把自已对MySQL的改善也会加入到他使用的版本,Facebook将会使用MySQL-5.1.44做会一个基本版本进行Patch。项目网址:https://launchpad.net/mysqlatfacebook/51

如果对MySQL5.1比较关注,也请保持对这个项目关注。

对MySQL 5.1.X使用请慎重

 作者:吴炳锡 来源:http://www.mysqlsupport.cn/ 联系方式: wubingxi#gmail.com 转载请注明作/译者和出处,并且不能用于商业用途,违者必究。
 
      近段一直在一个项目中恶战,所以对于Blog更新慢了一点。该项目中使用了MySQL 5.1.X,使用这个版本是在我加入这个项目前就决定的。该项目基本上可以达到每秒3W的QPS(大多是基于主建的等于逻辑读写)记录都是比较长的。
近段遇到一些问题列举:
  使用MySQL-5.1.31 进行数据迁移,从SQL SERVER到MySQL迁移,共享表空间,每表一个线程,一次从SQL SERVER读取20条记录写入MySQL,迁移完毕后一个大表巨然是只能读不能写了
关闭连接池程序,保持只有一个连接进入MySQL但对那个大表也无法进行update操作,可以进行insert操作。该表有差不多2亿的数据,当时那个无语真的没法说。最终解决方法,把该表
dump了出来,又导回去可以更新。
  最新的业务上线后开着swap,没过几天就出现swap占用明显,DB反应慢的不能忍受。最终解决方法:禁用了swap分区。
  因为truncate table不能被复制及一系列问题,最终升级到mysql-5.1.31sp1(无语一个垃圾升级版本),我的意思当时升级到MySQL-5.1.37。这样就引出了另一外问题:Sort aborted,
内存溢出。以至于出现了几次严重的内存使用完毕后MySQLD被KILL掉,MySQLD进程重启,数据文件恢复造成Down机时间过长。巨汗的一次。
  痛中思痛,最终把MySQL-5.1.41,现在看来内存正常了。使用中出现了一个更可怕的问题,对一个dump出来后,导入时对该表show create table不显示结果,按ctrl+c,MySQLD就Crash,巨汗。
  万恶的MySQL-5.1.X,准备升级到MySQL-5.1.x的同学,还是我多思考一下吧。

一个新的MySQL分支--MariaDB

作者:吴炳锡 来源:http://www.mysqlsupport.cn/ 联系方式: wubingxi#gmail.com 转载请注明作/译者和出处,并且不能用于商业用途,违者必究。

  MySQL创始人韦德纳斯(Michael Widenius)从MySQL被Sun收购后,就去了MariaDB工作。从MariaDB的介绍上总体来看应该也不错的。以后也要多关注一下这个数据库了。

  可以关注的:
innodb-plugin
PBXT storage engine
XtraDB storage engine
Maria storage engine

推荐使用innodb_plugin

作者:吴炳锡 来源:http://www.mysqlsupport.cn/ 联系方式: wubingxi#gmail.com 转载请注明作/译者和出处,并且不能用于商业用途,违者必究。
innodb-plugin 出现差不多有一年了。从功能上性能上都表现的不错。自MySQL-5.1.38后发行的版本中已包括了该功能。(推荐使用MySQL-5.1.40)
http://dev.mysql.com/doc/refman/5.1/en/innodb.html
http://planet.mysql.com/entry/?id=20926

该版本的特性:
http://www.innodb.com/wp/products/innodb_plugin/license/third-party-contributions-in-innodb-plugin-1-0-4/

Multiple Background Threads
==把后面进程的IO进程,细化并可以分配成多个.以前Linux下该IO只能是四个.现在可以最大调到64个.

Master Thread I/O Capacity Tuning
==内部IO限制.我们现在用的Innoddb内部有同时可以操作100个IO限制.这个限制对于现在高端的磁盘显的太少了

Asynchronous Read Ahead
==这是 Google and Percona 的一个Patch对增强MySQL的IO性能及Buffer中读取速度有所改善.

Group Commit
==该功能是MySQL一直支持的,但支持的不够好.在5.1.38的innodb-plugin-1.0.4中的支持是使用的percona的支持.把该性能支持的更好.

Adaptive Flushing
==自适应的刷新脏页,该功能也是来自percona的支持.对于Innodb checkpoint在原来的情况下在某种条件的触发下要进行一个checkpoint因为某些机制,有时并不能很好的完成,
出现系统的抖动现象.如:文件的锁问题,文件系统fsync一大片更新数据,对系统io冲击较大。若分隔成多个小数据fsync,能够减少对读的影响。同时结合mysql代码,发现mysql保证两次fsync之间至少有20ms的sleep,这样的话,若将一次fsync变成多次小数据操作,应该能够减少慢查询的比例。(从目前来看,杜绝是不太可能的)。这也是为什么近几年来percona,innodb的barrauda在推独表空间的一个原因吧.
对于该Patch的引入,它利用10%的IO去做checkpoint从而减少对系统的压力.

Additional Patches
==这部分是Sun的支持.加入了对Solaris的一些特别支持.
对我们有用的是: 对innodb spin loops做了更好的处理.增大了spin的值.
对DBA增加一个诱人的地方:
创建非cluster index时,不用是在Copy表这样一个复杂过程了.
另外:
加入了一种新的Innodb文件格式:barracuda ,据说该文件格式对性能提升很高.但要求使用独立表空间.
http://www.mysqlperformanceblog.com/2008/04/23/real-life-use-case-for-barracuda-innodb-file-format/
该功能需要加入innodb_file_format=barracuda ,并且需要在配置中文件中声明:innodb_file_per_table
所以需要使用该功能的朋友建义Dump出来数据后在[mysqld]中设置这两个参数后在导入:

[mysqld]
ignore_builtin_innodb
plugin_dir=/usr/local/mysql/lib/plugin
plugin-load=innodb=ha_innodb_plugin.so;innodb_trx=ha_innodb_plugin.so;innodb_locks=ha_innodb_plugin.so;innodb_cmp=ha_innodb_plugin.so;innodb_cmp_reset=ha_innodb_plugin.so;innodb_cmpmem=ha_innodb_plugin.so;innodb_cmpmem_reset=ha_innodb_plugin.so
innodb_file_format=barracuda
innodb_file_per_table

Innodb plugin是一个比较让人企待的版本.其实这些功能基本上都被pernoca公司在mysql5.0中实现了.而且我以前使用相关的版本后都是表现良好的.
所以我觉的对于MySQL5.1.38可以导一份基于独立表空间的数据做一个对比.
文中提及的percona: http://www.percona.com/
Google: http://code.google.com/p/google-mysql-tools/wiki/Mysql5Patches
更多关于innodb 的信息可以参考:http://www.innodb.com

Sun的CxO大会 归来

     今天上午去参加了Sun的CxO大会,本想得到一些Sun关于MySQL发展方向的消息,但并没得到确切的消息。MySQL的Richard Mason(Sun公司MySQL全球销售副总裁)只是透漏Oracle收购了Sun后MySQL也可能做为Oracle的一个产品去运营。

     在大会上Richard更多的强调MySQL的策略就是攻占中端市场,网站市场。这点我是认同的。并切相信MySQL在这方面做的很棒。此次大会也可以说是Sun决心在中国建立一个好的销售渠道的一个表现。顺便支持一下Sun的行为。

     希望MySQL发展的更好吧。也期待5.4的Release。

     此次大会也一点稳人心的感觉。MySQL现在虽然属于Oracle了,大家不用担心他会被灭掉。MySQL还会永远的活下去。