innodb_io_capacity、innodb_io_capacity_max 控制的是 innodb 刷脏页的能力。

过小会导致 mysql 刷脏页能力不足,影响性能。
过大会让 mysql 认为 io 能力很强,会造成 io 尖峰。

--------------------------------------------

innodb_io_capacity
参数定义了InnoDB后台任务每秒可用的I/O操作数(IOPS),例如用于从buffer pool中刷新脏页和从change buffer中合并数据。
innodb后台进程最大的I/O性能指标,影响刷新赃页和插入缓冲的数量,在高转速磁盘下,尤其是现在SSD盘得到普及,可以根据需要适当提高该参数的值。

innodb_io_capacity=2000(公司配置)

innodb_io_capacity 磁盘配置

200 单盘SAS/SATA
2000 SAS*12 RAID 10
5000 SSD
50000 FUSION-IO

innodb_io_capacity_max=4000(公司配置)

在压力下,控制当刷新脏数据时MySQL每秒执行的写IO量
解释一下什么叫“在压力下”,MySQL中称为”紧急情况”,是当MySQL在后台刷新时,它需要刷新一些数据为了让新的写操作进来。然后,MySQL会用到innodb_io_capacity_max。
那么,应该设置innodb_io_capacity和innodb_io_capacity_max为什么呢?
最好的方法是测量你的存储设置的随机写吞吐量,然后给innodb_io_capacity_max设置为你的设备能达到的最大IOPS。innodb_io_capacity就设置为它的50-75%,特别是你的系统主要是写操作时。

auto_increment_increment
自增长字段每次递增的量,默认值1.
auto_increment_offset
自增长字段从哪个值开始,默认值为1.