SlideShare a Scribd company logo
1 of 16
MySQL与IO

  @淘宝丁奇
1. MySQL的文件及简介
2. 数据访问流程
3. 文件访问模式
4. 影响io行为的一些参数和选择策略
MySQL的文件及简介

类型名称             文件名

数据文件(datafile)   *.frm *.ibd

数据字典             Ibdata1、ibdata2

事务日志(redolog)    Ib_logfile0、ib_logfile1

回滚日志(undolog)    Ibdata

归档日志(binlog)     mysql-bin.000001~mysql-
                 bin.xxxx
中继日志(relaylog)   mysqld-relay-bin.xxxxxx

其他日志             slowlolg, errorlog,querylog
数据访问流程

一个简单的查询 select * from t where id>=( select id
 from t where k1=100 limit 100000,1) limit 2;

表结构
CREATE TABLE `t` (
  `id` int(11) NOT NULL,
  `k1` int(11) DEFAULT NULL,
  `data` char(100) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `k1` (`k1`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
数据访问流程
数据访问流程

一个简单的更新 insert into t values(1, 100, ‘abcd’);




神马是insert buffer?跟io
有关吗
文件访问模式

1) *.frm
  表定义文件。访问特点:极少改动、整体访问--什么模式最
   适合?


2) *ibd
  表数据文件。访问特点:大量随机读写--什么模式最适合?
  内部什么样?
 在传统SAS盘时代,怎么最大化利用磁盘性能?
 换了SSD/FUSIONIO 以后呢?

对应的策略带来的数据安全问题----
文件访问模式

3) ib_logfile*
    Redolog。 访问方式:顺序读写。
    512字节对齐写可以联想到什么?

4)MySQL-bin
   Binlog。 访问方式:顺序读写。
   为什么策略与redolog不同?

5)ibdata
 数据字典和回滚日志。访问方式:随机读写/顺序写。策略与
   数据文件类似。
影响io行为的一些参数和参数对io的影响

以下参数的描述流程:
1、什么意思
2、影响哪些流程
3、对IO的影响和选择策略

innodb_file_per_table
innodb_flush_log_at_trx_commit
sync_binlog
innodb_flush_method
binlog_cache_size
innodb_buffer_pool_size
innodb_max_dirty_pages_pct
innodb_read_io_threads/innodb_write_io_threads
影响io行为的一些参数和参数对io的影响

innodb_file_per_table
1、控制是否每个表数据一个文件
2、推荐配置1的原因?


innodb_flush_log_at_trx_commit
1、控制redo log的写盘、刷盘策略
2、安全递增是0  2  1
3、不同配置的风险和代价

sync_binlog
1、控制binlog刷盘策略
2、安全递增是0 N  1
3、不同配置的风险和代价
4、与上个配置的差别,为什么没有控制写盘策略?
5、 Binlog_cache_use 和 Binlog_cache_disk_use
影响io行为的一些参数和参数对io的影响


innodb_flush_method
1、控制data或log的刷盘策略
2、可选值
      FSYNC O_DSYNC
      O_DIRECT
      LITTLESYNC NOSYNC
3、一般设置O_DIRECT ,也不够理想 ALL_O_DIRECT



binlog_cache_size
1、还没有提交的事务放cache
2、大事务?
3、Binlog_cache_use /Binlog_cache_disk_use
影响io行为的一些参数和参数对io的影响


innodb_buffer_pool_size
1、InnoDB中最重要的那块内存
2、越大越好,可用内存的80%
3、Insert Buffer最多占一半



innodb_max_dirty_pages_pct
1、最大脏页比例
2、什么是脏页
3、脏页更新策略及对性能的影响
影响io行为的一些参数和参数对io的影响


innodb_read_io_threads/innodb_write_io_threads
1、异步IO线程数
2、不用太大 4/4就够
3、第一次性能测试,请在DBA指导下使用InnoDB_plugin
    并作标准配置
如果还有时间。。。

作压测时你会碰到的问题和解决思路
 查询也写盘,原因和方法




 压测insert的时候那瞬间的抖动,原因和方法
如果还有时间。。。

当设备多起来,我们就有更多的选择
 文件放哪—一个主要思路




 Ibdata上面的主要更新,矛盾?
谢谢

More Related Content

Viewers also liked

Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践Feng Yu
 
了解应用服务器
了解应用服务器了解应用服务器
了解应用服务器Feng Yu
 
低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索Feng Yu
 
mnesia脑裂问题综述
mnesia脑裂问题综述mnesia脑裂问题综述
mnesia脑裂问题综述Feng Yu
 
了解IO协议栈
了解IO协议栈了解IO协议栈
了解IO协议栈Feng Yu
 
Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言Feng Yu
 
了解IO设备
了解IO设备了解IO设备
了解IO设备Feng Yu
 
了解内存
了解内存了解内存
了解内存Feng Yu
 
利用新硬件提升数据库性能
利用新硬件提升数据库性能利用新硬件提升数据库性能
利用新硬件提升数据库性能Feng Yu
 
Rethink db&tokudb调研测试报告
Rethink db&tokudb调研测试报告Rethink db&tokudb调研测试报告
Rethink db&tokudb调研测试报告Feng Yu
 
了解网络
了解网络了解网络
了解网络Feng Yu
 
了解集群
了解集群了解集群
了解集群Feng Yu
 
我为什么要选择RabbitMQ
我为什么要选择RabbitMQ我为什么要选择RabbitMQ
我为什么要选择RabbitMQFeng Yu
 
高性能集群服务器(Erlang解决方案)
高性能集群服务器(Erlang解决方案)高性能集群服务器(Erlang解决方案)
高性能集群服务器(Erlang解决方案)Feng Yu
 

Viewers also liked (14)

Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践
 
了解应用服务器
了解应用服务器了解应用服务器
了解应用服务器
 
低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索
 
mnesia脑裂问题综述
mnesia脑裂问题综述mnesia脑裂问题综述
mnesia脑裂问题综述
 
了解IO协议栈
了解IO协议栈了解IO协议栈
了解IO协议栈
 
Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言
 
了解IO设备
了解IO设备了解IO设备
了解IO设备
 
了解内存
了解内存了解内存
了解内存
 
利用新硬件提升数据库性能
利用新硬件提升数据库性能利用新硬件提升数据库性能
利用新硬件提升数据库性能
 
Rethink db&tokudb调研测试报告
Rethink db&tokudb调研测试报告Rethink db&tokudb调研测试报告
Rethink db&tokudb调研测试报告
 
了解网络
了解网络了解网络
了解网络
 
了解集群
了解集群了解集群
了解集群
 
我为什么要选择RabbitMQ
我为什么要选择RabbitMQ我为什么要选择RabbitMQ
我为什么要选择RabbitMQ
 
高性能集群服务器(Erlang解决方案)
高性能集群服务器(Erlang解决方案)高性能集群服务器(Erlang解决方案)
高性能集群服务器(Erlang解决方案)
 

Similar to MySQL和IO(上)

mysql总结
mysql总结mysql总结
mysql总结haiwang
 
My sql explain & select
My sql explain & selectMy sql explain & select
My sql explain & selectMing-Ying Wu
 
111030 gztechparty-小路-云时代的mysql
111030 gztechparty-小路-云时代的mysql111030 gztechparty-小路-云时代的mysql
111030 gztechparty-小路-云时代的mysqlZoom Quiet
 
Mysql 培训-优化篇
Mysql 培训-优化篇Mysql 培训-优化篇
Mysql 培训-优化篇sunmonth
 
Essential oracle security internal for dba
Essential oracle security internal for dbaEssential oracle security internal for dba
Essential oracle security internal for dbamaclean liu
 
My sql管理基础 李春_v2
My sql管理基础 李春_v2My sql管理基础 李春_v2
My sql管理基础 李春_v2Pickup Li
 
丁原:海量数据迁移方案
丁原:海量数据迁移方案丁原:海量数据迁移方案
丁原:海量数据迁移方案YANGL *
 
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页liu sheng
 
美团数据库运维平台介绍
美团数据库运维平台介绍美团数据库运维平台介绍
美团数据库运维平台介绍Leo Zhou
 
美团数据库运维平台介绍
美团数据库运维平台介绍美团数据库运维平台介绍
美团数据库运维平台介绍Leo Zhou
 
Sql基础培训
Sql基础培训Sql基础培训
Sql基础培训Ji ZHANG
 
Mysql体系结构及原理(innodb)公开版
Mysql体系结构及原理(innodb)公开版Mysql体系结构及原理(innodb)公开版
Mysql体系结构及原理(innodb)公开版longxibendi
 
Mysql展示功能与源码对应
Mysql展示功能与源码对应Mysql展示功能与源码对应
Mysql展示功能与源码对应zhaolinjnu
 
Mysql 101014202926-phpapp01
Mysql 101014202926-phpapp01Mysql 101014202926-phpapp01
Mysql 101014202926-phpapp01Bob Huang
 
Mysql fast share
Mysql fast shareMysql fast share
Mysql fast sharerfyiamcool
 
我对后端优化的一点想法 (2012)
我对后端优化的一点想法 (2012)我对后端优化的一点想法 (2012)
我对后端优化的一点想法 (2012)james tong
 
Oracle北大青鸟完全教程
Oracle北大青鸟完全教程Oracle北大青鸟完全教程
Oracle北大青鸟完全教程yiditushe
 
Sql语句的优化
Sql语句的优化Sql语句的优化
Sql语句的优化abszhanghe
 
山頂洞人日記 - 回歸到最純樸的開發
山頂洞人日記 -  回歸到最純樸的開發山頂洞人日記 -  回歸到最純樸的開發
山頂洞人日記 - 回歸到最純樸的開發koji lin
 
第4章 sql server数据库的管理
第4章   sql server数据库的管理第4章   sql server数据库的管理
第4章 sql server数据库的管理hanmo1988
 

Similar to MySQL和IO(上) (20)

mysql总结
mysql总结mysql总结
mysql总结
 
My sql explain & select
My sql explain & selectMy sql explain & select
My sql explain & select
 
111030 gztechparty-小路-云时代的mysql
111030 gztechparty-小路-云时代的mysql111030 gztechparty-小路-云时代的mysql
111030 gztechparty-小路-云时代的mysql
 
Mysql 培训-优化篇
Mysql 培训-优化篇Mysql 培训-优化篇
Mysql 培训-优化篇
 
Essential oracle security internal for dba
Essential oracle security internal for dbaEssential oracle security internal for dba
Essential oracle security internal for dba
 
My sql管理基础 李春_v2
My sql管理基础 李春_v2My sql管理基础 李春_v2
My sql管理基础 李春_v2
 
丁原:海量数据迁移方案
丁原:海量数据迁移方案丁原:海量数据迁移方案
丁原:海量数据迁移方案
 
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
 
美团数据库运维平台介绍
美团数据库运维平台介绍美团数据库运维平台介绍
美团数据库运维平台介绍
 
美团数据库运维平台介绍
美团数据库运维平台介绍美团数据库运维平台介绍
美团数据库运维平台介绍
 
Sql基础培训
Sql基础培训Sql基础培训
Sql基础培训
 
Mysql体系结构及原理(innodb)公开版
Mysql体系结构及原理(innodb)公开版Mysql体系结构及原理(innodb)公开版
Mysql体系结构及原理(innodb)公开版
 
Mysql展示功能与源码对应
Mysql展示功能与源码对应Mysql展示功能与源码对应
Mysql展示功能与源码对应
 
Mysql 101014202926-phpapp01
Mysql 101014202926-phpapp01Mysql 101014202926-phpapp01
Mysql 101014202926-phpapp01
 
Mysql fast share
Mysql fast shareMysql fast share
Mysql fast share
 
我对后端优化的一点想法 (2012)
我对后端优化的一点想法 (2012)我对后端优化的一点想法 (2012)
我对后端优化的一点想法 (2012)
 
Oracle北大青鸟完全教程
Oracle北大青鸟完全教程Oracle北大青鸟完全教程
Oracle北大青鸟完全教程
 
Sql语句的优化
Sql语句的优化Sql语句的优化
Sql语句的优化
 
山頂洞人日記 - 回歸到最純樸的開發
山頂洞人日記 -  回歸到最純樸的開發山頂洞人日記 -  回歸到最純樸的開發
山頂洞人日記 - 回歸到最純樸的開發
 
第4章 sql server数据库的管理
第4章   sql server数据库的管理第4章   sql server数据库的管理
第4章 sql server数据库的管理
 

More from Feng Yu

Cpu高效编程技术
Cpu高效编程技术Cpu高效编程技术
Cpu高效编程技术Feng Yu
 
Erlang开发实践
Erlang开发实践Erlang开发实践
Erlang开发实践Feng Yu
 
MySQL和IO(下)
MySQL和IO(下)MySQL和IO(下)
MySQL和IO(下)Feng Yu
 
了解Cpu
了解Cpu了解Cpu
了解CpuFeng Yu
 
SSD在淘宝的应用实践
SSD在淘宝的应用实践SSD在淘宝的应用实践
SSD在淘宝的应用实践Feng Yu
 
淘宝商品库MySQL优化实践
淘宝商品库MySQL优化实践淘宝商品库MySQL优化实践
淘宝商品库MySQL优化实践Feng Yu
 
开源混合存储方案(Flashcache)
开源混合存储方案(Flashcache)开源混合存储方案(Flashcache)
开源混合存储方案(Flashcache)Feng Yu
 
Erlang low cost_clound_computing
Erlang low cost_clound_computingErlang low cost_clound_computing
Erlang low cost_clound_computingFeng Yu
 
Systemtap
SystemtapSystemtap
SystemtapFeng Yu
 
Oprofile linux
Oprofile linuxOprofile linux
Oprofile linuxFeng Yu
 
C1000K高性能服务器构建技术
C1000K高性能服务器构建技术C1000K高性能服务器构建技术
C1000K高性能服务器构建技术Feng Yu
 
Erlang全接触
Erlang全接触Erlang全接触
Erlang全接触Feng Yu
 
Tsung 压力测试工具
Tsung 压力测试工具Tsung 压力测试工具
Tsung 压力测试工具Feng Yu
 
Inside Erlang Vm II
Inside Erlang Vm IIInside Erlang Vm II
Inside Erlang Vm IIFeng Yu
 

More from Feng Yu (16)

Cpu高效编程技术
Cpu高效编程技术Cpu高效编程技术
Cpu高效编程技术
 
Erlang开发实践
Erlang开发实践Erlang开发实践
Erlang开发实践
 
MySQL和IO(下)
MySQL和IO(下)MySQL和IO(下)
MySQL和IO(下)
 
了解Cpu
了解Cpu了解Cpu
了解Cpu
 
SSD在淘宝的应用实践
SSD在淘宝的应用实践SSD在淘宝的应用实践
SSD在淘宝的应用实践
 
淘宝商品库MySQL优化实践
淘宝商品库MySQL优化实践淘宝商品库MySQL优化实践
淘宝商品库MySQL优化实践
 
开源混合存储方案(Flashcache)
开源混合存储方案(Flashcache)开源混合存储方案(Flashcache)
开源混合存储方案(Flashcache)
 
Erlang low cost_clound_computing
Erlang low cost_clound_computingErlang low cost_clound_computing
Erlang low cost_clound_computing
 
Systemtap
SystemtapSystemtap
Systemtap
 
Oprofile linux
Oprofile linuxOprofile linux
Oprofile linux
 
Go
GoGo
Go
 
C1000K高性能服务器构建技术
C1000K高性能服务器构建技术C1000K高性能服务器构建技术
C1000K高性能服务器构建技术
 
Erlang全接触
Erlang全接触Erlang全接触
Erlang全接触
 
Tsung 压力测试工具
Tsung 压力测试工具Tsung 压力测试工具
Tsung 压力测试工具
 
Inside Erlang Vm II
Inside Erlang Vm IIInside Erlang Vm II
Inside Erlang Vm II
 
Go Lang
Go LangGo Lang
Go Lang
 

MySQL和IO(上)