innodb_buffer_pool_size
该参数的单位是字节,主要作用是缓存数据和索引,值越大对降低磁盘I/O的效果就越明显。在一个专有服务器中可以把该值设置成物理服务器内存的80%,但是也不能太大,如果太大会强迫操作系统使用虚拟内存。
innodb_additional_mem_pool_size 缓存附加值
该参数的单位是字节,主要用于存储数据字典相关的信息(表描述信息)和其他的内部数据结构。如果表的数量很多的话该值的大小要增大,如果在innodb服务器运行过程中发现该值不够了会自动向操作系统申请更大的值,并且会在error日志中写入警告信息,该值的默认大小是1MB
Innodb_max_dirty_pages_pct 脏数据百分比,(在innodb的缓存中的数据别修改后就成了脏数据)
该值的范围在0~100,默认值是90,当脏数据在buffer中的数量达到设置的百分比时就将脏数据同步的磁盘中
设置innodb表空间文件
innodb_data_file_path = /data/ibdata1:2000M;/data2/ibdata2:2000M:autoextend
设置innodb表空间的路径,可以使用两个表空间文件,可以通过将两个表空间文件存放在不同的磁盘下提供io,第二个表空间文件可以自动增长
innodb_file_per_table = 1//开启独立表空间,独立表空间只存储数据、索引、插入缓冲等信息
innodb_flush_log_at_trx_commit //设置刷写重做日志的频率,值有0、1、2
0:代表有事务提交,并不将事务直接刷入日志文件,而是等待主线程的每秒刷新
1:将事务提交时,将重做日志同步刷写到磁盘
2、将事务提交时,将重做日志异步刷写到磁盘
设置innodb重做日志
innodb_log_file_size//指定文件大小
innodb_log_files_in_group//指定日志文件组中日志文件的个数,默认是2
innodb_mirrored_log_groups//指定日志镜像文件组的数量,默认是1,表示没有镜像,
innodb_log_group_home_dir//设置日志文件组所在路径
重做日志的文件不能太大也不能太小,,太小会导致一个事务的日志需要多次切换重做日志。如果设置的太大,在回复时可能需要很长的时间。重做日志有个 capacity变量,该值代表做好的检查点不能超过这个阈值
innodb_log_buffer_size //指定日志的缓冲大小 默认是1M ,设置8M足够,缓冲用在大事务提交之前避免刷新数据到磁盘。
二进制日志设置
log_bin=/data/logbing//设置二进制日志路径
max_binlog_size=500M//设置二进制日志文件大小,默认是1G
binlog_cache_size//设置二进制日志缓冲,默认32KB,
通过show global status 查看binlog_cache_use,binlog_cache_disk_use查看binlog_cache_size大小是否合适
binlog_cache_size记录使用缓冲写二进制的次数,binglog_cache_disk_use记录使用临时文件写二进制的次数,如果临时文件次数为0说明binlog_cache_size的值足够大
sync_binlog=1//表示采用同步写磁盘的方式记录二进制日志,这时不会使用操作系统的缓冲来写二进制。默认值是0,使用系统缓冲,使用1会对磁盘io造成一定压力。
innodb_support_xa = 1//如果sync_binlog设置成1则改参数也要设置成1,为了解决事务被写入二进制日志但却没提交,当服务器宕机时照常的数据不一致
binlog-do-db//表示需要写入二进制日志的数据库
binlog-ingore-db//表示不写入二进制日志的数据库
log-slave-update//
binlog_format//记录二进制日志的格式:statement、row、mixed
statement:日志的逻辑sql语句
row:记录表的行更新情况,设置该值可以将innodb的事务隔离位read committed获得较好的并发性
mixed:默认的记录