澳门新萄京8522:my.cnf参数配置实现InnoDB引擎质量优化,my.cnfinnodb

如果innodb_flush_log_at_trx_commit设置为0,log
buffer将每秒二回地写入log file中,并且log
file的flush(刷到磁盘)操作同时张开。该形式下,在事情提交的时候,不会积极性触发写入磁盘的操作。
如果innodb_flush_log_at_trx_commit设置为一,每一趟事务提交时MySQL都会把log
buffer的数量写入log file,并且flush(刷到磁盘)中去。
如果innodb_flush_log_at_trx_commit设置为2,每趟事务提交时MySQL都会把log
buffer的数据写入log
file。但是flush(刷到磁盘)操作并不会同时开展。该形式下,MySQL会每秒试行一遍flush(刷到磁盘)操作。

my.cnf参数配置完毕InnoDB引擎质量优化,my.cnfinnodb

在互连网看了不少的my.cnf的安排,大很多关联的配置无外乎那多少个:

  1. innodb_buffer_pool_size
  2. innodb_log_file_size
  3. innodb_log_buffer_size
  4. innodb_flush_log_at_trx_commit

下一场本身写了三个例证,1个单线程的,贰个二拾二十四线程的来因此退换配置参数来测试是不是进步了质量。结果是唯有innodb_flush_log_at_trx_commit能够加强品质,对于1,2,三参数无论是开当中某一个,仍旧多少个同时调度都尚未影响到测试质量。小编想了下,大概是本人的测试数据量还不够大导致的,后续有标准了再更加大的数据量测试一下那1个参数。

此处详细说一下innodb_flush_log_at_trx_commit:

如果innodb_flush_log_at_trx_commit设置为0,log
buffer将每秒一回地写入log file中,并且log
file的flush(刷到磁盘)操作同时张开。该形式下,在业务提交的时候,不会积极性触发写入磁盘的操作。
如果innodb_flush_log_at_trx_commit设置为1,每一回事务提交时MySQL都会把log
buffer的多寡写入log file,并且flush(刷到磁盘)中去。
如果innodb_flush_log_at_trx_commit设置为②,每回事务提交时MySQL都会把log
buffer的多少写入log
file。可是flush(刷到磁盘)操作并不会同时拓展。该形式下,MySQL会每秒试行三遍flush(刷到磁盘)操作。

结果

当设置为0,该格局速度最快,但不太安全,mysqld进度的倒台会招致上一秒钟全数事务数据的不见。
当设置为一,该情势是最安全的,但也是最慢的壹种方法。在mysqld
服务崩溃可能服务器主机crash的意况下,binary log
只有希望丢掉最多四个说话只怕多个业务。
当设置为二,该情势速度极快,也比0安全,唯有在操作系统崩溃可能系统断电的景观下,上壹分钟全部工作数据才或许有失。

注意:由于经过调节战术难题,这些“每秒实行1回flush(刷到磁盘)操作”并不是确定保障百分之百的“每秒”。

结论:innodb_flush_log_at_trx_commit设置为0恐怕二的时候速度大约,两个都比设置为一的时候快多数。

那边又让自家想到了InnoDB和MyISAM引擎的分别,InnoDB的优势在于并发处理意况下比MyISAM快。而本身的线程池数量是依据cpu的线程数来设定的,然后本身把线程池的多少设置比cpu线程数大,更加大,再大,结果本身的测试程序质量又提升了,笔者醉了,原来是小编对线程池的知情太浅薄了。线程池的最优大小

在英特网看了多数的my.cnf的计划,大许多事关的布局无外乎那多少个: 一.
innodb_buffer_pool_size 2…

而出于InnoDB是二个身强体壮的事务型存款和储蓄引擎,已经有10多年的历史,一些重量级的网络商家(Yahoo,谷歌(Google)Netease ,天猫)也临时使用

 

  1. innodb_buffer_pool_size
  2. innodb_log_file_size
  3. innodb_log_buffer_size
  4. innodb_flush_log_at_trx_commit

你或然感兴趣的稿子:

  • MySQL
    质量优化的特等20多条经验分享
  • MySQL数据库引擎介绍、差别、创制和质量测试的递进深入分析
  • MySQL质量优化之max_connections配置参数浅析
  • 浅析Mysql
    Join语法以及质量优化
  • MYSQL品质优化分享(分库分表)
  • MySQL达成批量布置以优化品质的教程
  • MySQL品质优化之路—修改配置文件my.cnf
  • MySQL品质设置
  • MySQL质量优化布局参数之thread_cache和table_cache详解
  • MySQL配置文件my.cnf汉语详解附mysql品质优化措施分享
  • 小幅度优化MySQL查询品质的奇技淫巧
  • MySQL查询随机数据的四种办法和品质比较
  • MySQL质量优化之table_cache配置参数浅析
  • mysql服务特性优化—my.cnf_my.ini配置表达详解(1陆G内部存储器)
  • mysql质量优化之索引优化
  • MySQL品质深入分析工具profile使用教程
  • 从MySQL得到最大的优化质量
  • MySQL质量全面优化措施参照他事他说加以考察,从CPU,文件系统选拔到mysql.cnf参数优化

character-set-server=latin1 #
服务端使用的字符集默感觉八比特编码的latin1字符集

在英特网看了数不尽的my.cnf的布置,大多数涉及的布置无外乎这么些:

自己的平凡专门的学业也每每接触InnoDB,以往就InnoDB一部分能够改良品质的参数列举
1. innodb_additional_mem_pool_size 除开缓存表数据和索引外,可感觉操作所需的别样中间项分配缓存来进步InnoDB的属性。那个内部存储器就能够通过此参数来分配。推荐此参数至少设置为二MB,实际上,是供给依据项指标InnoDB表的数据相应地追加
2.innodb_data_pool_size 此参数类似于MySQL的key_buffer参数,但一定用于InnoDB表.这么些参数明确了要留住多少内部存储器来缓存表数据和目录。与key_buffer同样,越来越高的装置会晋级品质,能够是服务器的内部存款和储蓄器70-五分之四
3.innodb_data_file_path 参数的名字和骨子里的用处有一点出入,它不仅仅钦定了颇具InnoDB数据文件的门路,还钦赐了初叶大小分配,最大分配以及超越初叶分配界线时是不是应当增添文件的大小。此参数的貌似格式如下:
path-to-datafile:size-allocation[:autoextend[:max-size-allocation]]
比方,借使希望成立3个数据文件sales,初阶大小为十0MB,并希望在历次达到当前大小限制时,自动扩大八MB(八MB是钦定autoextend时的默认扩大大小).但是,不愿意此文件超过1GB,可以选用如下配置:
innodb_data_home_dir =
innodb_data_file_path = /data/sales:100M:autoextend:8M: max:1GB
假如此文件扩张到预约的一G的界定,能够再追加其余1个数据文件,如下:
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平台北这么些参数设置为④
6. innodb_flush_log_at_trx_commit 借使将此参数设置为一,将在每一次提交业务后将日志写入磁盘。为提供质量,能够安装为0或二,但要承担在发出故障时丢失数据的高危机。设置为0表示事情日志写入日志文件,而日志文件每秒刷新到磁盘壹遍。设置为二表示事情日志就要付出时写入日志,但日志文件每一遍刷新到磁盘一回。
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开荒人士提出设置为一-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表时推荐此设置

max_connections=100 #
mysql服务器支持的最大并发连接数(用户数)。但总会预留当中的贰个连接给管理员使用拔尖权限登入,尽管再而三数目到达最大范围。借使设置得过小而用户相比多,会日常出现“Too
many connections”错误。

接下来自身写了三个例证,3个单线程的,二个拾2线程的来通过退换配置参数来测试是或不是升高了质量。结果是唯有innodb_flush_log_at_trx_commit能够增进质量,对于一,2,叁参数无论是开在那之中某多个,照旧多少个同时调解都未曾影响到测试品质。笔者想了下,恐怕是本人的测试数据量还不够大导致的,后续有标准化了再越来越大的数据量测试一下那三个参数。

  www.2cto.com  

此间详细说一下innodb_flush_log_at_trx_commit:

 

注意:由于经过调节战术难题,那几个“每秒施行2回flush(刷到磁盘)操作”并不是保证百分之百的“每秒”。

innodb_additional_mem_pool_size=3M #
InnoDB用于存款和储蓄元数据音信的内部存款和储蓄器池大小,一般不需修改

当设置为0,该情势速度最快,但不太安全,mysqld进度的倒台会招致上壹秒钟全数业务数据的不见。
当设置为一,该形式是最安全的,但也是最慢的一种格局。在mysqld
服务崩溃或许服务器主机crash的景色下,binary log
唯有希望有失最多叁个言辞也许贰个业务。
当设置为贰,该方式速度非常的慢,也比0安全,唯有在操作系统崩溃可能系统断电的意况下,上一分钟全体职业数据才或者丢掉。

innodb_flush_log_at_trx_commit =1 #
事务相关参数,假使值为一,则InnoDB在历次commit都会将职业日志写入磁盘(磁盘IO消耗十分大),这样有限支撑了一心的ACID性格。而只要设置为0,则表示事情日志写入内部存款和储蓄器log和内部存款和储蓄器log写入磁盘的成效都为2遍/秒。若是设为二则代表事情日志在每一次commit都写入内部存款和储蓄器log,但内部存储器log写入磁盘的效能为二遍/秒。

你恐怕感兴趣的篇章:

  • MySQL五.陆.一柒数据库安装
    怎么样安顿My.ini文件
  • MySql
    伍.柒.20安装及data和my.ini文件的安插
  • MySQL 伍.陆 &
    5.柒最优配置文件模板(my.ini)
  • mysql服务属性优化—my.cnf_my.ini配置说明详解(16G内部存款和储蓄器)
  • MySQL优化配置文件my.ini(discuz论坛)
  • 对MySQL配置参数
    my.ini/my.cnf的详实深入分析
  • Mysql my.ini 配置文件详解
  • MySQL中布局文件my.cnf因权限难题形成力不从心运营的缓慢解决情势
  • mysql
    查看当前选拔的安顿文件my.cnf的格局(推荐)
  • MySQL修改my.cnf配置不奏效的减轻措施
  • MySQL 5.5.x
    my.cnf参数配置优化详解
  • MySQL配置文件my.cnf优化详解(mysql5.五)
  • MySQL质量优化之路—修改配置文件my.cnf
  • MariaDB(Mysql分支)my.cnf配置文件普通话注释版
  • MySQL配置文件my.cnf参数优化和中文详解
  • MySQL配置文件my.cnf中文详解附mysql性能优化措施分享
  • MySQL配置文件my.cnf汉语版对照
  • MySQL 配置文件my.cnf
    例子最详尽翻译
  • MySql优化之InnoDB,四GB内部存款和储蓄器,多询问的my.ini中文配置方案详解

 

结果

 

那边又让本人想开了InnoDB和MyISAM引擎的分别,InnoDB的优势在于并发处理状态下比MyISAM快。而自身的线程池数量是依照cpu的线程数来设定的,然后作者把线程池的数据设置比cpu线程数大,越来越大,再大,结果笔者的测试程序质量又增加了,作者醉了,原来是本身对线程池的精晓太浅薄了。线程池的最优大小

 

结论:innodb_flush_log_at_trx_commit设置为0可能2的时候速度差不离,两个都比设置为1的时候快繁多。

 

    default-character-set=utf8 # 设置mysql客户端暗中同意字符集

 

 

 

 

query_cache_size=0 #
查询缓存大小,用于缓存SELECT查询结果。纵然有不少重返同样查询结果的SELECT查询,并且很少改造表,能够设置query_cache_size大于0,能够比不小革新查询效用。而只要表数据频仍转移,就毫无使用这么些,会大失所望

table_cache=256 #
这些参数在5.一.三自此的本子中称之为table_open_cache,用于安装table高速缓存的数目。由于每种客户端连接都会至少走访2个表,因而此参数的值与
     
max_connections有关。当某壹接连访问1个表时,MySQL会检查当前已缓存表的数码。假设该表已经在缓存中开垦,则会直接待上访问缓存中的表已加速查询速度;假诺该表未被缓存,则会将近来的表增添进缓存并张开查询。在进行缓存操作从前,table_cache用于限制缓存表的最大数据:借使当前已经缓存的表未达到table_cache,则会将新表加多进去;若已经达到此值,MySQL将依附缓存表的末尾查询时间、查询率等规则释放以前的缓存。

sort_buffer_size=256K #
connection级参数(为各样线程配置),500个线程将消耗500*256K的sort_buffer_size。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图