文档章节

可以改善mysql性能的InnoDB配置参数

Wall_Z
 Wall_Z
发布于 2014/06/12 11:35
字数 1179
阅读 138
收藏 17

MySQL与MSSQL 有一个区别在于MySQL建表的时候需要选择存储引擎,常用的存储引擎有MyISAM和InnoDB

而由于InnoDB是一个健壮的事务型存储引擎,已经有10多年的历史,一些重量级的互联网公司(Yahoo,Google Netease ,Taobao)也经常使用 

我的日常工作也经常接触InnoDB,现在就InnoDB一部分可以改善性能的参数列举 
1. innodb_additional_mem_pool_size 
除了缓存表数据和索引外,可以为操作所需的其他内部项分配缓存来提升InnoDB的性能。这些内存就可以通过此参数来分配。推荐此参数至少设置为2MB,实际上,是需要根据项目的InnoDB表的数目相应地增加 
2.innodb_data_pool_size 
此参数类似于MySQL的key_buffer参数,但特定用于InnoDB表.这个参数确定了要预留多少内存来缓存表数据和索引。与key_buffer一样,更高的设置会提升性能,可以是服务器的内存70-80% 
3.innodb_data_file_path 
参数的名字和实际的用途有点出入,它不仅指定了所有InnoDB数据文件的路径,还指定了初始大小分配,最大分配以及超出起始分配界线时是否应当增加文件的大小。此参数的一般格式如下: 
path-to-datafile:size-allocation[:autoextend[:max-size-allocation]] 
例如,假设希望创建一个数据文件sales,初始大小为100MB,并希望在每次达到当前大小限制时,自动增加8MB(8MB是指定autoextend时的默认扩展大小).但是,不希望此文件超过1GB,可以使用如下配置: 
innodb_data_home_dir = 
innodb_data_file_path = /data/sales:100M:autoextend:8M: max:1GB 
如果此文件增加到预定的1G的限制,可以再增加另外一个数据文件,如下: 
innodb_data_file_path = /data/sales:100M:autoextend:8M: max:1GB;innodb_data_file_path = /data2/sales2:100M:autoextend:8M: max:2GB 
要注意的是,在这些示例中,inndb_data_home_dir参数开始设置为空,因为最终数据文件位于单独的位置(/data/和/data2/).如果希望所有 InnoDB数据文件都位于相同的位置,就可以使用innodb_data_home_dir来指定共同位置,然后在通过 inndo_data_file_path来指定文件名即可。如果没有定义这些值,将在datadir中创建一个sales。 
4 innodb_data_home_dir 
此参数指定创建InnoDB表空间的路径的公共部分,默认情况下,这是MySQL的默认数据,由MySQL参数datadir指定 
5. innodb_file_io_threads 
此参数指定InnoDB表可用的文件I/O线程数,MySQL开发人员建议在非Windows平台中这个参数设置为4 
6. innodb_flush_log_at_trx_commit 
如果将此参数设置为1,将在每次提交事务后将日志写入磁盘。为提供性能,可以设置为0或2,但要承担在发生故障时丢失数据的风险。设置为0表示事务日志写入日志文件,而日志文件每秒刷新到磁盘一次。设置为2表示事务日志将在提交时写入日志,但日志文件每次刷新到磁盘一次。 
7.innodb_log_archive 
因为MySQL目前使用自己的日志文件恢复InnoDB表,此参数可设置为0 
8.innodb_log_arch_dir 
MySQL目前忽略此参数,但会在未来的版本中使用。目前,应当将其设置为与innodb_log_group_home_dir相同的值 
9.innodb_log_buffer_size 
此参数确定些日志文件所用的内存大小,以M为单位。缓冲区更大能提高性能,但意外的故障将会丢失数据.MySQL开发人员建议设置为1-8M之间 
10. innodb_log_file_size 
此参数确定数据日志文件的大小,以M为单位,更大的设置可以提高性能,但也会增加恢复故障数据库所需的时间 
11.innodb_log_files_in_group 
为提高性能,MySQL可以以循环方式将日志文件写到多个文件。推荐设置为3M 
12. innodb_log_group_home_dir 
此参数确定日志文件组中的文件的位置,日志组中文件的个数由innodb_log_files_in_group确定,此位置设置默认为MySQL的datadir 
13.innodb_lock_wait_timeout 
InnoDB 有其内置的死锁检测机制,能导致未完成的事务回滚。但是,如果结合InnoDB使用MyISAM的lock tables 语句或第三方事务引擎,则InnoDB无法识别死锁。为消除这种可能性,可以将innodb_lock_wait_timeout设置为一个整数值,指示 MySQL在允许其他事务修改那些最终受事务回滚的数据之前要等待多长时间(秒数) 
14.skip-innodb 
启用此参数能防止夹杂InnoDB表驱动程序,不使用InnoDB表时推荐此设置


本文转载自:http://www.jb51.net/article/27069.htm

Wall_Z
粉丝 2
博文 12
码字总数 0
作品 0
十堰
私信 提问
关于Mysql thread_concurrency和innodb_thread_concurren

原文地址:关于Mysql threadconcurrency和innodbthreadconcurrency参数的一点整理 首先,最重要的一点,这个参数已经在最新版本的mysql中被移除了,官方最新5.7版本的doc上面对threadconcurr...

Realfighter
2015/01/05
8.5K
0
Mysql 版本引发的问题之thread_concurrency和innodb_thread_con

原文地址:关于Mysql threadconcurrency和innodbthreadconcurrency参数的一点整理 首先,最重要的一点,这个参数已经在最新版本的mysql中被移除了,官方最新5.7版本的doc上面对threadconcurr...

不正经啊不正经
2015/01/06
120
0
MySQL 8.0 首个自适应参数横空出世

|什么是自适应参数 MySQL8.0推出一个号称可以自适应服务器的参数,保证在各种不同的服务器、虚拟机、容器下自动适配服务器资源,让我们一起来看看到底它能做到什么地步。 |自适应参数是如何...

数据浮云
2018/06/28
0
0
「mysql优化专题」详解引擎(InnoDB,MyISAM)的内存优化攻略?(9)

上一篇我们讲了关于视图应用与优化,本篇我们讲解内存优化。本篇短小精悍,通俗易懂。 注意:以下都是在MySQL目录下的my.ini文件中改写。 一、InnoDB内存优化 InnoDB用一块内存区域做I/O缓存...

java进阶架构师
2017/12/17
0
0
提升mysql性能的关键参数之innodb_buffer_pool_size、innodb_buffer_pool_instances

版权声明:欢迎转载,请注明沉默王二原创。 https://blog.csdn.net/qing_gee/article/details/42742241 提升mysql性能的关键参数之innodbbufferpoolsize、innodbbufferpoolinstances。 首先我...

qing_gee
2015/01/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
今天
6
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
5
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
15
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
15
0
jquery--DOM操作基础

本文转载于:专业的前端网站➭jquery--DOM操作基础 元素的访问 元素属性操作 获取:attr(name);$("#my").attr("src"); 设置:attr(name,value);$("#myImg").attr("src","images/1.jpg"); ......

前端老手
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部