SlideShare a Scribd company logo
1 of 22
Download to read offline
阿里集团MySQL介绍
   (5.5特性)
 集团-数据库-MySQL
 xiyu.lh@taobao.com



                      1
现状
    5.1.48
    停止支持

     5.1.61
   RDS定制版本

      5.5
重点发展版本(阿里集团版本)

                 2
5.5
   源于Percona-5.5.18

        改动主要为:
 backport 5.5新版本的bugfix
fix集团MySQL DBA遇到的bug
dev使用集团MySQL遇到的需求

   集团MySQL为内部版本

                          3
5.5:slave_exec_mode=smart
SQL线程错误: 1032|1062 !!!




         团队博客
                            4
5.5:QC额外锁开销
        Percona
      启动时disable QC

           MySQL
  编译时without_query_cache
MariaDB-5.5亦解决(和QC作者沟通)
    集团MySQL彻底解决此问题
        团队博客1(5.1)
        团队博客2(5.5)

                           5
5.5:复制回路事件自动检测
      server_id异常变动

  event在拓朴结构中节点间来回传递

集团MySQL版本自动识别并在error.log中
         打印日志
       团队博客(TBD)

                            6
5.5:mysqlbinlog –B(flashback)
      回滚到binlog中某个点

     DELETE <-> INSERT
   UPDATE (SET <-> WHERE)

       顺序解析,逆序输出


                                7
5.5:flush privileges导致连接失败


间断性连接失败,小概率事件,难排查

   一段线程锁竞争的代码惹的祸

          团队博客



                             8
5.5:死锁开关检测

deadlock_detect_switch=OFF|ON

在类似“热卖”商品场景下,绕开死锁检测

         ICDB集群部署


                                9
5.5:并行复制(评估中…)

 第一版本发发布,第二版本正在开发中

merge到trunk中,还有一段非常长的时间

         团队博客



                      10
5.5:新特性1
        InnoDB Change Buffering
          默认版本从insert->all
 (因为all未稳定,集团版本默认仍为insert)

 如果page不在BP中,稍后一旦从disk上读到
         Cache中再 merge

SSD随机读和顺序读相当, Percona建议为none
        (需要测试验证)
                                  11
5.5:新特性2
 separate doublewrite file

  innodb_doublewrite_file

    写入型会受益:
  增加并行IO(独立的磁盘)

      增加SSD的寿命
(对现在SSD的意义没有想象的明显)

                             12
5.5:新特性3
   multiple buffer pools

      多个BP:
  减少BP flush_list锁竞争
 page通过hash分配到BP上
  尽可能地扩散hot pages
过多的BP会增加内部额外开销

                           13
5.5:新特性4
partitioned adaptive hash search

 分拆自适应hash, 减少锁竞争
 innodb_adaptive_hash_partitions = N


多核CPU+读写混合时+非聚簇索引



                                       14
5.5:新特性5
     extra rollback segments

        增加事务并发性

  innodb_extra_rsegments被废弃
写入型负载需要更多的rollback segments



                               15
5.5:新特性6
             innodb_fast_checksum

if (!fast_checksum) then old_checksum
  页面可能有混合的checksum
  新写页面采用fast checksum
  完全采用此特性,必须重建表


innodb_fast_checksums disable->enable,需重建表


                                             16
5.5:新特性7
       separate purge thread

      5.5之前是在master线程中
    5.5默认innodb_purge_threads=1

insert/update型,建议对比多个purge线程
            (注意考查稳定性)

  集团MySQL的purge_batch_size选项
  防止批量purge时MySQL阻塞业务

                                  17
5.5:新特性8
           native aio

            默认为 AIO
将I/O merge的负担交给kernel(相比模拟AIO)
       性能比模拟aio高不了多少
       更稳定,经常更多人测试
         能减少1/3的恢复时间

                             18
5.5:新特性9
      adaptive flushing

     innodb_io_capacity &
 innodb_max_dirty_pages_pct
        顺序相邻的脏页
更适用于解决多个BP刷脏性能
          5.5中更平滑
reflex, estimate, keep_average

        5.6性能更优
                                 19
5.5:新特性10
        optimize dumping

 innodb-optimize-keys for mysqldump

非聚簇索引会在load完数据再创建
建表时,忽略KEY, UNIQUE KEY, 和 CONSTRAINT
导完数据再用ALTER TABLE来补全之前突略的语句



                                      20
5.5:新特性11
             快速删表
       innodb_lazy_drop_table

     Facebook & 5.6从flush_list刷

Percona更简单,直接标记space_id为deleted

             团队博客

                                  21
5.5:新特性12
   ibd自动扩展性能问题

     采用FB的补丁
5.6增加node->being_extended



        团队博客

                            22

More Related Content

What's hot

2018 8 18_play_framework
2018 8 18_play_framework2018 8 18_play_framework
2018 8 18_play_frameworkLorn Jhu
 
Simplivity 4.0 with storeonce catalyst
Simplivity 4.0 with storeonce catalystSimplivity 4.0 with storeonce catalyst
Simplivity 4.0 with storeonce catalyst裝機安 Angelo
 
MySQL Replication新功能介绍
MySQL Replication新功能介绍 MySQL Replication新功能介绍
MySQL Replication新功能介绍 orczhou
 
(2020-01).HPE SimpliVity 如何分享腹內Datastore給現現有的ESXi使用
(2020-01).HPE SimpliVity 如何分享腹內Datastore給現現有的ESXi使用(2020-01).HPE SimpliVity 如何分享腹內Datastore給現現有的ESXi使用
(2020-01).HPE SimpliVity 如何分享腹內Datastore給現現有的ESXi使用裝機安 Angelo
 
MySQL源码分析.02.Handler API
MySQL源码分析.02.Handler APIMySQL源码分析.02.Handler API
MySQL源码分析.02.Handler APILixun Peng
 
你的 JS 該減肥了!5個提升網頁載入速度的技巧 - Modern Web 2020
你的 JS 該減肥了!5個提升網頁載入速度的技巧 - Modern Web 2020你的 JS 該減肥了!5個提升網頁載入速度的技巧 - Modern Web 2020
你的 JS 該減肥了!5個提升網頁載入速度的技巧 - Modern Web 2020Shubo Chao
 
Mysql展示功能与源码对应
Mysql展示功能与源码对应Mysql展示功能与源码对应
Mysql展示功能与源码对应zhaolinjnu
 
内部MySQL培训.3.基本原理
内部MySQL培训.3.基本原理内部MySQL培训.3.基本原理
内部MySQL培训.3.基本原理Lixun Peng
 
方建国 -V mware-ha实战1
方建国 -V mware-ha实战1方建国 -V mware-ha实战1
方建国 -V mware-ha实战1landece
 
(2020 03)SimpliVity change vcenter
(2020 03)SimpliVity change vcenter(2020 03)SimpliVity change vcenter
(2020 03)SimpliVity change vcenter裝機安 Angelo
 
MySQL压力测试经验
MySQL压力测试经验MySQL压力测试经验
MySQL压力测试经验Jinrong Ye
 
Oracle数据库升级前必要的准备工作
Oracle数据库升级前必要的准备工作Oracle数据库升级前必要的准备工作
Oracle数据库升级前必要的准备工作maclean liu
 
Oracle管理藝術第1章 在Linux作業體統安裝Oracle 11g
Oracle管理藝術第1章 在Linux作業體統安裝Oracle 11gOracle管理藝術第1章 在Linux作業體統安裝Oracle 11g
Oracle管理藝術第1章 在Linux作業體統安裝Oracle 11gChien Chung Shen
 
My sql 5.6新特性深入剖析——innodb引擎
My sql 5.6新特性深入剖析——innodb引擎My sql 5.6新特性深入剖析——innodb引擎
My sql 5.6新特性深入剖析——innodb引擎frogd
 
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践Node.js在淘宝的应用实践
Node.js在淘宝的应用实践taobao.com
 
配置Oracle 10g 双向流复制
配置Oracle 10g 双向流复制配置Oracle 10g 双向流复制
配置Oracle 10g 双向流复制maclean liu
 
Mysql proxy cluster
Mysql proxy clusterMysql proxy cluster
Mysql proxy clusterYiwei Ma
 
Asp.net mvc 6 新功能初探
Asp.net mvc 6 新功能初探Asp.net mvc 6 新功能初探
Asp.net mvc 6 新功能初探Gelis Wu
 
多IDC的数据分布
多IDC的数据分布多IDC的数据分布
多IDC的数据分布jackbillow
 

What's hot (20)

2018 8 18_play_framework
2018 8 18_play_framework2018 8 18_play_framework
2018 8 18_play_framework
 
Simplivity 4.0 with storeonce catalyst
Simplivity 4.0 with storeonce catalystSimplivity 4.0 with storeonce catalyst
Simplivity 4.0 with storeonce catalyst
 
MySQL Replication新功能介绍
MySQL Replication新功能介绍 MySQL Replication新功能介绍
MySQL Replication新功能介绍
 
(2020-01).HPE SimpliVity 如何分享腹內Datastore給現現有的ESXi使用
(2020-01).HPE SimpliVity 如何分享腹內Datastore給現現有的ESXi使用(2020-01).HPE SimpliVity 如何分享腹內Datastore給現現有的ESXi使用
(2020-01).HPE SimpliVity 如何分享腹內Datastore給現現有的ESXi使用
 
MySQL源码分析.02.Handler API
MySQL源码分析.02.Handler APIMySQL源码分析.02.Handler API
MySQL源码分析.02.Handler API
 
你的 JS 該減肥了!5個提升網頁載入速度的技巧 - Modern Web 2020
你的 JS 該減肥了!5個提升網頁載入速度的技巧 - Modern Web 2020你的 JS 該減肥了!5個提升網頁載入速度的技巧 - Modern Web 2020
你的 JS 該減肥了!5個提升網頁載入速度的技巧 - Modern Web 2020
 
Mysql展示功能与源码对应
Mysql展示功能与源码对应Mysql展示功能与源码对应
Mysql展示功能与源码对应
 
内部MySQL培训.3.基本原理
内部MySQL培训.3.基本原理内部MySQL培训.3.基本原理
内部MySQL培训.3.基本原理
 
方建国 -V mware-ha实战1
方建国 -V mware-ha实战1方建国 -V mware-ha实战1
方建国 -V mware-ha实战1
 
(2020 03)SimpliVity change vcenter
(2020 03)SimpliVity change vcenter(2020 03)SimpliVity change vcenter
(2020 03)SimpliVity change vcenter
 
1~60
1~601~60
1~60
 
MySQL压力测试经验
MySQL压力测试经验MySQL压力测试经验
MySQL压力测试经验
 
Oracle数据库升级前必要的准备工作
Oracle数据库升级前必要的准备工作Oracle数据库升级前必要的准备工作
Oracle数据库升级前必要的准备工作
 
Oracle管理藝術第1章 在Linux作業體統安裝Oracle 11g
Oracle管理藝術第1章 在Linux作業體統安裝Oracle 11gOracle管理藝術第1章 在Linux作業體統安裝Oracle 11g
Oracle管理藝術第1章 在Linux作業體統安裝Oracle 11g
 
My sql 5.6新特性深入剖析——innodb引擎
My sql 5.6新特性深入剖析——innodb引擎My sql 5.6新特性深入剖析——innodb引擎
My sql 5.6新特性深入剖析——innodb引擎
 
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践Node.js在淘宝的应用实践
Node.js在淘宝的应用实践
 
配置Oracle 10g 双向流复制
配置Oracle 10g 双向流复制配置Oracle 10g 双向流复制
配置Oracle 10g 双向流复制
 
Mysql proxy cluster
Mysql proxy clusterMysql proxy cluster
Mysql proxy cluster
 
Asp.net mvc 6 新功能初探
Asp.net mvc 6 新功能初探Asp.net mvc 6 新功能初探
Asp.net mvc 6 新功能初探
 
多IDC的数据分布
多IDC的数据分布多IDC的数据分布
多IDC的数据分布
 

Similar to 阿里集团MySQL特性(5.5介绍)

Mysql体系结构及原理(innodb)公开版
Mysql体系结构及原理(innodb)公开版Mysql体系结构及原理(innodb)公开版
Mysql体系结构及原理(innodb)公开版longxibendi
 
MySQL 6.0 下的cluster + replicate - 20080220
MySQL 6.0 下的cluster + replicate - 20080220MySQL 6.0 下的cluster + replicate - 20080220
MySQL 6.0 下的cluster + replicate - 20080220Jinrong Ye
 
2011 06-12-lamp-mysql-顾春江
2011 06-12-lamp-mysql-顾春江2011 06-12-lamp-mysql-顾春江
2011 06-12-lamp-mysql-顾春江thinkinlamp
 
2011 06-12-lamp-mysql
2011 06-12-lamp-mysql2011 06-12-lamp-mysql
2011 06-12-lamp-mysqlpwesh
 
Oracle10g Rac Configuration For Linux X86
Oracle10g Rac Configuration For Linux X86Oracle10g Rac Configuration For Linux X86
Oracle10g Rac Configuration For Linux X86dbabc
 
My sql管理基础 李春_v2
My sql管理基础 李春_v2My sql管理基础 李春_v2
My sql管理基础 李春_v2Pickup Li
 
Jkcn MySQLDB 架构
Jkcn MySQLDB 架构Jkcn MySQLDB 架构
Jkcn MySQLDB 架构Louis liu
 
Hadoop基线选定
Hadoop基线选定Hadoop基线选定
Hadoop基线选定baggioss
 
Mysql handlersocket
Mysql handlersocketMysql handlersocket
Mysql handlersocketpwesh
 
Vulkan introduction
Vulkan introductionVulkan introduction
Vulkan introductionJiahan Su
 
优酷 Web网站架构案例分析
优酷   Web网站架构案例分析优酷   Web网站架构案例分析
优酷 Web网站架构案例分析George Ang
 
Key value store
Key value storeKey value store
Key value storexuanhan863
 
Youku arch qcon2009_beijing
Youku arch qcon2009_beijingYouku arch qcon2009_beijing
Youku arch qcon2009_beijingdrewz lin
 
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)acqua young
 
C++工程实践
C++工程实践C++工程实践
C++工程实践Shuo Chen
 
Mysql proxy+mysql-mmm
Mysql proxy+mysql-mmmMysql proxy+mysql-mmm
Mysql proxy+mysql-mmmYiwei Ma
 
Python小团队不妨知道的技术
Python小团队不妨知道的技术Python小团队不妨知道的技术
Python小团队不妨知道的技术jie.wang
 

Similar to 阿里集团MySQL特性(5.5介绍) (20)

Mysql体系结构及原理(innodb)公开版
Mysql体系结构及原理(innodb)公开版Mysql体系结构及原理(innodb)公开版
Mysql体系结构及原理(innodb)公开版
 
MySQL 6.0 下的cluster + replicate - 20080220
MySQL 6.0 下的cluster + replicate - 20080220MySQL 6.0 下的cluster + replicate - 20080220
MySQL 6.0 下的cluster + replicate - 20080220
 
2011 06-12-lamp-mysql-顾春江
2011 06-12-lamp-mysql-顾春江2011 06-12-lamp-mysql-顾春江
2011 06-12-lamp-mysql-顾春江
 
2011 06-12-lamp-mysql
2011 06-12-lamp-mysql2011 06-12-lamp-mysql
2011 06-12-lamp-mysql
 
Sth About SSD
Sth About SSDSth About SSD
Sth About SSD
 
Oracle10g Rac Configuration For Linux X86
Oracle10g Rac Configuration For Linux X86Oracle10g Rac Configuration For Linux X86
Oracle10g Rac Configuration For Linux X86
 
My sql管理基础 李春_v2
My sql管理基础 李春_v2My sql管理基础 李春_v2
My sql管理基础 李春_v2
 
Mysql集群
Mysql集群Mysql集群
Mysql集群
 
Jkcn MySQLDB 架构
Jkcn MySQLDB 架构Jkcn MySQLDB 架构
Jkcn MySQLDB 架构
 
Hadoop基线选定
Hadoop基线选定Hadoop基线选定
Hadoop基线选定
 
Mysql handlersocket
Mysql handlersocketMysql handlersocket
Mysql handlersocket
 
Vulkan introduction
Vulkan introductionVulkan introduction
Vulkan introduction
 
优酷 Web网站架构案例分析
优酷   Web网站架构案例分析优酷   Web网站架构案例分析
优酷 Web网站架构案例分析
 
Key value store
Key value storeKey value store
Key value store
 
Youku arch qcon2009_beijing
Youku arch qcon2009_beijingYouku arch qcon2009_beijing
Youku arch qcon2009_beijing
 
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)
 
-Nginx book
 -Nginx book -Nginx book
-Nginx book
 
C++工程实践
C++工程实践C++工程实践
C++工程实践
 
Mysql proxy+mysql-mmm
Mysql proxy+mysql-mmmMysql proxy+mysql-mmm
Mysql proxy+mysql-mmm
 
Python小团队不妨知道的技术
Python小团队不妨知道的技术Python小团队不妨知道的技术
Python小团队不妨知道的技术
 

More from Hui Liu

5.6 nutshell - 性能优化
5.6 nutshell  - 性能优化5.6 nutshell  - 性能优化
5.6 nutshell - 性能优化Hui Liu
 
MySQL的并发线程性能问题
MySQL的并发线程性能问题MySQL的并发线程性能问题
MySQL的并发线程性能问题Hui Liu
 
InnoDB并发控制在密集型并发更新下的问题
InnoDB并发控制在密集型并发更新下的问题InnoDB并发控制在密集型并发更新下的问题
InnoDB并发控制在密集型并发更新下的问题Hui Liu
 
DBA学院课程之:MySQL故障诊断案例
DBA学院课程之:MySQL故障诊断案例DBA学院课程之:MySQL故障诊断案例
DBA学院课程之:MySQL故障诊断案例Hui Liu
 
InnoDB IO优化
InnoDB IO优化InnoDB IO优化
InnoDB IO优化Hui Liu
 
S1: InnoDB AIO原理及相关bug分析
S1: InnoDB AIO原理及相关bug分析S1: InnoDB AIO原理及相关bug分析
S1: InnoDB AIO原理及相关bug分析Hui Liu
 

More from Hui Liu (6)

5.6 nutshell - 性能优化
5.6 nutshell  - 性能优化5.6 nutshell  - 性能优化
5.6 nutshell - 性能优化
 
MySQL的并发线程性能问题
MySQL的并发线程性能问题MySQL的并发线程性能问题
MySQL的并发线程性能问题
 
InnoDB并发控制在密集型并发更新下的问题
InnoDB并发控制在密集型并发更新下的问题InnoDB并发控制在密集型并发更新下的问题
InnoDB并发控制在密集型并发更新下的问题
 
DBA学院课程之:MySQL故障诊断案例
DBA学院课程之:MySQL故障诊断案例DBA学院课程之:MySQL故障诊断案例
DBA学院课程之:MySQL故障诊断案例
 
InnoDB IO优化
InnoDB IO优化InnoDB IO优化
InnoDB IO优化
 
S1: InnoDB AIO原理及相关bug分析
S1: InnoDB AIO原理及相关bug分析S1: InnoDB AIO原理及相关bug分析
S1: InnoDB AIO原理及相关bug分析
 

阿里集团MySQL特性(5.5介绍)