mysql innodb存储引擎相关参数总结

基本参数
default_storage_engine=InnoDB
#设置mysql实例的存储为Innodb,这样设置了以后,你在创建表时
#不指定存储引擎,那么创建的表默认就是innodb存储;但还是建议
#在创建表时指定存储引擎;
	
innodb_buffer_pool_size=1G
#设置buffer pool池的大小,buffer pool里面存放的是索引和数据;
#当读取数据时,会先到buffer pool池里面去找,若有则直接读取数据;
#若没有,直接到磁盘上读取数据文件,然后把数据缓存在buffer pool池里面,供下次查询;
#当写入数据时,会先把数据写入到buffer pool池里面,然后再写入磁盘
#它的大小必须得是等于或者是innodb_buffer_pool_instances乘以
#innodb_buffer_pool_chunk_size的倍数
#生产环境设置建议:不超过物理内存的75%;
#buffer pool的组成部分
#free list  #启动时有多个16k的空白页就存在free list里面的
#lur list   #当读取一个页的数据时,就把free list里面的页放在lur list
#flush list #当修改过的页就存放在flush list里面,这里面就有脏页

innodb_buffer_pool_instances=8
#将bufferr pool分成多少个实例,以达到提高mysql并发的性能;
#在windows下默认是1个,在linux下默认也是1个(默认buffer pool大小为128M)
#若在linux下mysql innodb buffer pool的大小等于1G或于大于1G,则该参数
#默认为8,生产环境设置时,建议跟你服务器的CPU核数

innodb_buffer_pool_chunk_size=128M
#buffer pool池的块大小,默认也是128M,生产建议也设置成128M
    
innodb_buffer_pool_dump_at_shutdown=1
#在停止mysql实例的时候是否把buffer pool里面的数据dummp下来
#该参数默认是开启的,你会在数据目录下看到有一个ib_buffer_pool的文件

innodb_buffer_pool_dump_pct=40
#当innodb_buffer_pool_dump_at_shutdown等于1时,dump多少数据,默认是25%

innodb_buffer_pool_load_at_startup=1
#mysql启动时,是否将停服务时dump来来的数据自动加载到buffer pool池里面;

 事务日志的相关参数

innodb_log_buffer_size=16M
#设置事务的事务日志缓冲区的大小,默认是16M
#生产中默认的16M就已经够了;

innodb_flush_log_at_trx_commit=1
#控制事务日志刷新到磁盘的一个方式,默认也是1,它有三个值:
#正常流程:事务提交---->log buffer---->file system---->log file

#0  
A:流程:事务提交-->(每秒)file system-->log file;
B:每秒一次的频率将日志直接写入到log file中,不会同时触发(1秒)文件系统到磁盘的同步操作;
C:速度快,不安全,减少磁盘IO,若出现故障,会丢失1秒的事务;

#1
A:流程:事务提交--->log buffer--->(同时)file system---log file
B:每个事务的提交都会走log buffer到log file之间的步骤,同时触发文件系统到磁盘的同步操作
C:最安全的,可以做到不会丢失任何一个事务

#2
A:流程:事务提交--->log buffer--->(每秒)file system---log file
B:每个事务的提交都会走log buffer到log file之间的步骤,不会触发文件系统到磁盘的同步操作
	
innodb_log_file_size=4G
#设置innodb每组事务日志文件的的大小,不要设置太大,但你可以设置多个嘛;
#小业务256M就够了,中业务保持在2~4G就行;若没有指定路径,保存数据目录下;
#文件名为ib_logfile0
	
innodb_log_files_in_group=2
#设置事务日志文件有多少个
#这里是设置的是2个,那么在mysql实例的数据目录下就有
#ib_logfile0和ib_logfile1这两个文件

innodb_flush_method=O_DIRECT
#设置innodb数据文件及事务日志的打开/刷写方式;
#该参数默认是没有值的(也就是没有设置);
#fdatasync  调用fsync()去刷数据文件与事务日志到buffer
#O_DSYNC    innodb会使用O_SYNC方式打开和刷写redo log,使用fsync()刷写数据文件
#O_DIRECT   innodb使用O_DIRECT打开数据文件,使用fsync()刷写数据文件跟redo log

表空间

innodb_doublewrite=on
#该参数默认也是开启的,双写的意思
#作用是保证数据写入的可靠性,类似于READ1模拟
#避免部份写的情况;
	
innodb_file_per_table=1
#这个参数是决定是否使用独立表空间,默认值为1,表示使用独立表空间;
#若将这个参数的值设置为0/off,则mysql就会使用共享表空间;

innodb_data_file_path=ibdata1:5G;ibdata2:5G;ibdata3:5G:autoextend:max:20G
#设置共享表空间的文件名,文件大小,最大大小,以及保存路径
#该参数的默认文件大小名为ibdata1,且只有一个;
#该参数的默认值为12M,保存在mysql实例的数据目录下;
	
innodb_autoextend_increment=64
#这个参数是针对共享表空间的,当共享表空间要满了以后,会事先申请
#磁盘空间,单位是M

innodb_change_buffering=all
#开启变更缓冲区,默认是all,这个参数可以提高mysql 30%的性能;
#all表示既可以插入、删除、清理

innodb_temp_data_file_path=ibtmp1:5G:autoextend:max:20G
#设置临时表空间的文件名,文件大小,最大大小,以及保存路径
#该参数的默认文件大小名为ibtmp1,且只有一个;
#该参数的默认值为12M,保存在mysql实例的数据目录下;

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

转载于:https://www.cnblogs.com/chenliangc/articles/11556426.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值