SlideShare a Scribd company logo
MySQL优化、新特性和新架
       构

        彭立勋
    WWW.PengLiXun.COM




                        Alibaba	
  DBA	
  Team
Topics
•     挖掘MySQL性能
•     InnoDB Plugin新特性
•     Percona带来的改进
•    “动静结合”的分布式数据库架构
•     Q & A
挖掘MySQL性能
•    优化编译:ICC取代GCC
•    优化文件系统:XFS取代EXT3
•    优化存储:SSD取代SAS
•    优化接口:Handler Socket取代SQL
ICC取代GCC
•  ICC能有效利用Intel SSE2指令集,浮点
   运算效率高
•  ICC内置Intel Math Lib,提升数学函数
   效率
•  ICC内置Intel Thread Lib,提升多线程
   稳定性和效率
ICC vs GCC




硬件环境
CPU:Intel Xoen 5520
内存:24G
硬盘:10*15k SAS RAID10
XFS取代EXT3
•  XFS全B-Tree结构,适合大文件操作
•  XFS原生日志设计,日志检查速度远快于
   EXT3
•  XFS采用延迟分配,提升分配效率
EXT3 vs XFS

                                  64K顺序INSERT效率
350	
  


                        295	
  
300	
  


250	
  
            210	
  
200	
  
                                                                   EXT3	
  

150	
                                                    140	
     XFS	
  


                                            100	
  
100	
  


  50	
  


    0	
  
            插入速度(Rows/s)	
                      相对比例(%)	
  
SSD取代SAS
•  一块SSD盘相当于一套高端存储的IO能力
•  读写不对称,适合用于二级读缓存和日
   志缓冲
SSD vs SAS
Handler Socket取代SQL
•  绕过费时的SQL解析,简单SQL通过API直
   接访问InnoDB
InnoDB Plugin新特性
•  新的文件格式
 –  可选择的页大小(Page Size)
 –  可压缩的Blob Page
•  开放IO参数
 –      innodb_io_capity
 –      read/write_io_thread
•  脏页刷新方式改进
 –      innodb_adaptive_checkpoint(XtraDB)
 –      innodb_adaptive_flushing(InnoDB
      Plugin)
Adaptive Flushing
•  通过日志剩余空间除以日志产生速度算
   出切换前可以使用的时间:time_remainning
 = log_capacity / redo_gen_rate
•  必须在日志切换前完成所有脏页的刷新,
   所以可以计算出刷新速度:flush_rate =
 dirty_page_numbers / time_remaining =
 dairty_page_numbers * redo_gen_rate / log_capacity
•  将刷新速度减掉LRU_List刷新速度就可
   以得出Adaptive Flush必须的速度了:
 adaptive_flush_rate = flush_rate – lru_flush_rate
 = dairty_page_numbers * redo_gen_rate /
 log_capacity – lru_flush_rate
Adaptive Checkpoint
•  None:关闭自适应刷新
•  Reflex:脏页少于1/2则不刷新,超过
   1/2则使用Weak Flush,超过3/4则使用
   Strong Flush,大于7/8将不断刷新。
•  Estimate:脏页少于1/2则不刷新,超过
   1/2则基于未刷新的脏页量、日志产生速
   度、刷新页的Modified Age来计算刷新
   速度,大于7/8将不断刷新。
•  keep_average:刷新周期从1s提高到
   0.1s
自适应刷新方式
InnoDB IO流程
Percona带来的改进(1)
•  提升Buffer	
  Pool的扩展性
       XtraDB将Buffer	
  Pool的全局Mutex拆成了多个Mutex以减少争用	
  


•  提高InnoDB	
  IO扩展性
            XtraDB增加了许多变量去调整IO到最佳状态,包括调整
  checkpoint、后台读写数据文件线程数等等的参数	
  


•  多个回滚段
      为提供一直读,InnoDB将事务修改的数据写到回滚段。回
  滚段被一个独立的Mutex保护,这直接导致了写密集型的工作并发
  不高。在 XtraDB可以改变回滚段的数目(innodb_extra_rsegments)
  ,在写密集型操作中可以大幅度提高性能	
  


•  可以更高的并发数
      InnoDB在回滚段只提供了1024个回滚槽,如果回滚槽用完
  ,新的事务将不能开始,直到有回滚槽被释放,XtraDB提供2047个
  事务槽
Percona带来的改进(2)
•  专用的Purge线程
          如果有很多事务,Purge线程清理空间不够快,共享表空间
     将急剧增长。这 将导致性能严重下降,甚至可能用完所有的磁盘
     空间。XtraDB使用了专用的线程来清理undo	
  space,这对undo	
  space
     的清理速度可以提升很多。尽管这可能使整体的性能降低,但是可
     以大大提高稳定性,因而整体性能略微降低是值得的	
  


•  可配置的Doublewrite缓冲
          XtraDB提供了一个选项将doublewrite	
  buffer放在一个独立
     的磁盘来提升并发性能	
  


•     删除过多的函数调用
           当MySQL从socket读数据时,将产生很多fcntl(针对描述符
     提供控制的函数)调用,导致并发性能下降。Percona移出了多于 的调
     用	
  


•  减少了Buffer	
  Pool	
  Mutex竞争
           在InnoDB内核操作时减少了Buffer	
  Pool之间的Mutex争用(拆分
     Mutex变量)
新分布式数据库架构
•  静态服务器:主要数据存于静态服务器,除
   合并数据时,静态服务器数据不变。静态服
   务器为一组服务器池。

•  动态服务器:更新操作全部集中更在动态服
   务器,在合并数据时,动态服务器数据集中
   刷入静态服务器。

•  查询:从静态和动态服务器同时查询,合并
   结果。
程序结构
操作流程
Q&A

More Related Content

PDF
对MySQL应用的一些总结
PPTX
MySQL新技术探索与实践
PPT
MySQL新技术探索与实践
PPT
Database.Cache&Buffer&Lock
PPT
内部MySQL培训.3.基本原理
PDF
MySQL多机房容灾设计(with Multi-Master)
PPTX
对MySQL的一些改进想法和实现
PPT
MySQL源码分析.02.Handler API
对MySQL应用的一些总结
MySQL新技术探索与实践
MySQL新技术探索与实践
Database.Cache&Buffer&Lock
内部MySQL培训.3.基本原理
MySQL多机房容灾设计(with Multi-Master)
对MySQL的一些改进想法和实现
MySQL源码分析.02.Handler API

What's hot (20)

PPT
MySQL基础技能与原理——高级应用
PPT
MySQL源码分析.03.InnoDB 物理文件格式与数据恢复
PPT
MySQL源码分析.01.代码结构与基本流程
PPTX
MySQL和IO(下)
PPT
Mysql展示功能与源码对应
PDF
阿里集团MySQL特性(5.5介绍)
PDF
构建基于Lamp的网站架构
PDF
Mesos intro
PDF
阿里集团MySQL并行复制特性
PDF
Mvcc (oracle, innodb, postgres)
PPTX
如何针对业务做DB优化
PDF
数据库内核分享第二期(Inno db 日志 回滚段 & 崩溃恢复实现详解)
PDF
服务器基准测试-叶金荣@CYOU-20121130
PDF
Mysql proxy cluster
PDF
数据库内核分享——第一期
PPTX
RxJS 6 新手入門
PPTX
MySQL压力测试经验
PDF
MySQL快速入门与提高
PPTX
My sql 5.6新特性深入剖析——innodb引擎
PPT
性能优化
MySQL基础技能与原理——高级应用
MySQL源码分析.03.InnoDB 物理文件格式与数据恢复
MySQL源码分析.01.代码结构与基本流程
MySQL和IO(下)
Mysql展示功能与源码对应
阿里集团MySQL特性(5.5介绍)
构建基于Lamp的网站架构
Mesos intro
阿里集团MySQL并行复制特性
Mvcc (oracle, innodb, postgres)
如何针对业务做DB优化
数据库内核分享第二期(Inno db 日志 回滚段 & 崩溃恢复实现详解)
服务器基准测试-叶金荣@CYOU-20121130
Mysql proxy cluster
数据库内核分享——第一期
RxJS 6 新手入門
MySQL压力测试经验
MySQL快速入门与提高
My sql 5.6新特性深入剖析——innodb引擎
性能优化
Ad

Viewers also liked (18)

PDF
Performance of fractal tree databases
PDF
阿里云RDS for MySQL的若干优化
PDF
DoubleBinlog方案
PPT
DB_Algorithm_and_Data_Structure_About_Sort
PDF
Time Machine
PPT
内部MySQL培训.2.高级应用
PPT
内部MySQL培训.1.基础技能
PPTX
Alibaba patches in MariaDB
PPTX
Web design basics 1
PDF
Fractal Tree Indexes : From Theory to Practice
PDF
MongoDB and Fractal Tree Indexes
PDF
Database Design and Implementation
PPTX
Fractals presentation
PDF
Networked Citizens a Cagliari: presentazione libro e open lesson
PPT
Risk Managers Presentation
ODP
Why Open Source Software Matters
PPT
Selektywna Zbiorka, czyli jak odzyskiwać energię
PDF
Lord Young\'s Review
Performance of fractal tree databases
阿里云RDS for MySQL的若干优化
DoubleBinlog方案
DB_Algorithm_and_Data_Structure_About_Sort
Time Machine
内部MySQL培训.2.高级应用
内部MySQL培训.1.基础技能
Alibaba patches in MariaDB
Web design basics 1
Fractal Tree Indexes : From Theory to Practice
MongoDB and Fractal Tree Indexes
Database Design and Implementation
Fractals presentation
Networked Citizens a Cagliari: presentazione libro e open lesson
Risk Managers Presentation
Why Open Source Software Matters
Selektywna Zbiorka, czyli jak odzyskiwać energię
Lord Young\'s Review
Ad

Similar to MySQL优化、新特性和新架构 彭立勋 (20)

PPSX
My sql优化、新特性和新架构
PPT
Alibaba数据库运维最佳实践
PPT
百度分布式数据库平台
PPT
百度分布式数据库 刘斌 Sacc2010
PPSX
浅谈 My sql 性能调优
PPSX
MySQL应用优化实践
PDF
Mysql体系结构及原理(innodb)公开版
PDF
阿里巴巴 叶正盛 数据库性能量化
PDF
阿里巴巴 叶正盛 数据库性能量化
PPTX
Mysql调优
KEY
111030 gztechparty-小路-云时代的mysql
PDF
Lvs在大规模网络环境下的应用pukong
PDF
20110625.【打造高效能的cdn系统】.易统
PPT
数据库与ssd的实践与探索-2011数据库技术大会
PDF
InnoDB IO优化
PPTX
Exadata那点事
PDF
AWS_Educate_Team_SCU_Volunteer_Training_0923
PDF
Google LevelDB Study Discuss
PDF
利用统一存储获得无与伦比的速度,简化系统,并节省更多
PDF
MySQL5.6新功能
My sql优化、新特性和新架构
Alibaba数据库运维最佳实践
百度分布式数据库平台
百度分布式数据库 刘斌 Sacc2010
浅谈 My sql 性能调优
MySQL应用优化实践
Mysql体系结构及原理(innodb)公开版
阿里巴巴 叶正盛 数据库性能量化
阿里巴巴 叶正盛 数据库性能量化
Mysql调优
111030 gztechparty-小路-云时代的mysql
Lvs在大规模网络环境下的应用pukong
20110625.【打造高效能的cdn系统】.易统
数据库与ssd的实践与探索-2011数据库技术大会
InnoDB IO优化
Exadata那点事
AWS_Educate_Team_SCU_Volunteer_Training_0923
Google LevelDB Study Discuss
利用统一存储获得无与伦比的速度,简化系统,并节省更多
MySQL5.6新功能

More from Lixun Peng (6)

PDF
Double Sync Replication
PDF
对简易几何机械化证明的进一步研究
PDF
A binary graphics recognition algorithm based on fitting function
DOC
一种基于拟合函数的图形识别算法
PDF
中文分词算法设计
PPT
DB_Algorithm_and_Data_Structure_About_BTree
Double Sync Replication
对简易几何机械化证明的进一步研究
A binary graphics recognition algorithm based on fitting function
一种基于拟合函数的图形识别算法
中文分词算法设计
DB_Algorithm_and_Data_Structure_About_BTree

MySQL优化、新特性和新架构 彭立勋