MySQL性能优化-I/O相关配置参数
本文介绍InnoDB和MyISAM两种存储引擎的I/O相关参数配置。
1.InnoDB I/O相关配置
Innodb是一种事务型的存储引擎,为了减少提交事务时产生的io开销,innodb采用了写日志的方式,也就是在事务提交的时候会先写入事务日志中 ,而不是每次都把修改或者数据刷新到数据文件中,这样做是为了提高io的性能,因为事务的修改,使数据和索引文件通常都会映射到表空间随机的位置,所以刷新数据变更到数据文件会产生大量随机io,而记录日志是顺序io,一旦事务日志安全的写到磁盘中,数据就算是持久化了,即使变更还没有写入到数据文件,如果这时候服务器宕机了,这样的情况我们还是可以使用事务日志来恢复已经提交的事务。以下是一些InnoDB存储引擎相关的配置参数:
Innodb_log_file_size : 控制单个事务日志文件的大小(如果业务繁忙可以设置大一些,一般可以记录业务一个小时产生事务的日志);
Innodb_log_files_in_group : 控制事务日志文件的个数 ;
事务日志并不是每次提交都直接写入日志文件中的,而是先写入到事务日志的缓冲区,然后再刷新到磁盘中。Innodb_log_buffer_size控制事务日志缓冲区的大小,通常不需要把日志缓冲区设置得非常大,因为一般情况下至少一秒钟,就会进行一次事务日志缓存的刷新,所以这个缓冲区只要可以保存至少一秒钟的事务就足够了,当然稍微大一些也没有什么坏处,通常来说32M~128M这样的配置就可以了。
所以 , 事务日志的总大小 = Innodb_log_files_in_group * Innodb_log_file_size 。
Innodb_flush_log_at_trx_commit 将log刷新到磁盘的配置,有三种选项 :
(1)0:每秒钟进行一次log写入操作系统cache,并flush log到磁盘(在事务提交时候并不会做任何事情,这个设置在mysql崩溃时会至少丢失一秒钟的事务);
(2)1[默认]:在每次事务提交执行log写入cache,并fulsh log到磁盘(这是最安全的设置,不会丢失任何事务,但是性能并不理想) ;
(3)2[建议]:每次事务提交,执行log数据写入到cache,每秒钟执行一次flush log到磁盘。(完成事务持久化分为两步 :首先从mysql日志缓冲区刷新到操作系统的cache,然后从操作系统的cache刷新到磁盘);
2.MyISAM I/O相关配置
MyISAM也是常用的存储引擎,MySQL的相关系统表就是使用MyISAM存储引擎,MyISAM的I/O相关参数配置如下:
delay_key_write : OFF 每次写操作后刷新键缓冲中的脏块到磁盘;
ON 只对在键表时指定了delay_key_write选项的表使用延迟刷新;
ALL 对所有的MyISAM表都使用延迟键写入;
MySQL性能优化-I/O相关配置参数的更多相关文章
- MySQL性能优化方法一:缓存参数优化
原文链接:http://isky000.com/database/mysql-perfornamce-tuning-cache-parameter 数据库属于 IO 密集型的应用程序,其主要职责就是数 ...
- Mysql性能优化三:主从配置,读写分离
大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢 ...
- linux性能优化基础——iommu相关配置
此篇文档介绍了IOMMU相关的信息: https://blog.chaosjohn.com/Check-VT-D-or-IOMMU-under-Linux.html iommu和vt-d都是io半虚拟 ...
- Redis性能优化之redis.cnf配置参数
redis调优总结 1.相应的参数调优 加内存2.redis使用结构调优3.使用合理的数据类型说明:redis存储的数据为redis hash(字符映射表) 单key多字段结构. 1)调整配置文件中配 ...
- MySQL性能优化之max_connections配置参数浅析
这篇文章主要介绍了MySQL性能优化之max_connections配置参数浅析,本文着重讲解了3种配置max_connections参数的方法,需要的朋友可以参考下 MySQL的max_connec ...
- (转)MySQL配置文件mysql.ini参数详解、MySQL性能优化
本文转自:http://www.cr173.com/html/18331_1.html my.ini(Linux系统下是my.cnf),当mysql服务器启动时它会读取这个文件,设置相关的运行环境参数 ...
- MySQL配置文件mysql.ini参数详解、MySQL性能优化
my.ini(Linux系统下是my.cnf),当mysql服务器启动时它会读取这个文件,设置相关的运行环境参数. my.ini分为两块:Client Section和Server Section. ...
- mysql性能优化学习笔记-参数介绍及优化建议
MySQL服务器参数介绍 mysql参数介绍(客户端中执行),尽量只修改session级别的参数. 全局参数(新连接的session才会生效,原有已经连接的session不生效) set global ...
- MySQL DBA教程:Mysql性能优化之缓存参数优化
在平时被问及最多的问题就是关于 MySQL 数据库性能优化方面的问题,所以最近打算写一个MySQL数据库性能优化方面的系列文章,希望对初中级 MySQL DBA 以及其他对 MySQL 性能优化感 ...
随机推荐
- Nearest Common Ancestors(poj 1330)
题意:给定一棵树,询问两个节点的最近公共祖先. 输入:第一行T,表示测试组数. 每组测试数据包含一个n,表示节点数目,下面n-1行是连接的边,最后一行是询问 输出:共T行,代表每组的测试结果 /* 倍 ...
- 标准C程序设计七---24
Linux应用 编程深入 语言编程 标准C程序设计七---经典C11程序设计 以下内容为阅读: <标准C程序设计>(第7版) 作者 ...
- shell的case脚本的简单入门
shell的case脚本的简单入门 示例1: #/bin/bash a=$ case "$a" in ") echo 'hell 2';; ") echo 'h ...
- Codeforces Round #310 (Div. 2)简洁题解
A:原来是大水题,我还想去优化.. 结果是abs(num('0')-num('1')); num表示一个符号的个数; B:暴力模拟即可,每次判断是否能构造出答案. C:俄罗斯套娃,套套套,捉鸡的E文. ...
- 安装配置JDK+Eclipse+Maven、Eclipse里新建Maven Project以及HDFS命令和Java API-课堂内容
步骤:1.安装JDK→2.安装Eclipse→3.安装Maven→4. Eclipse里配置Maven (下载Windows版本,在Windows里安装使用.) 1.安装配置JDK ①官网下载Java ...
- centos6.5编译安装gearmand Job Server(C)
1)下载安装包: wget https://launchpad.net/gearmand/1.2/1.1.12/+download/gearmand-1.1.12.tar.gz 2)安装编译器: yu ...
- linux批量解压和批量压缩
ls *.tar.gz | xargs -n1 tar xzvf //批量解压 ls | awk '{ print "tar zcvf "$0".tar.gz " ...
- BUPT 2012复试机考 3T
97. 二叉排序树 时间限制 1000 ms 内存限制 65536 KB 题目描述 二叉排序树,也称为二叉查找树.可以是一颗空树,也可以是一颗具有如下特性的非空二叉树: 若左子树非空,则左子树上所有节 ...
- SolidEdge如何绘制阵列之后取消掉某一些
在最后一步点击"抑制事件",然后可以在被阵列的圆形上单击,被抑制的圆形变成灰色
- weexpack build android 和 weexpack run android 报错 及 解决方案
1. weexpack build android (1)Configuring > 0/3 projects > root project > Resolving dependen ...