mysql5.7性能提升一百倍调优宝典( 十 )


配置实例:

innodb_strict_mode = 1
46)log_error
error log所在位置,这个不用多讲,可以和mysql log放在同一路径下,文件名能够和其它log区分开来 。
47)slow_query_log
建议开启
48)slow_query_log_file
慢sql所在位置,这个不用多讲,可以和mysql log放在同一路径下,文件名能够和其它log区分开来 。
49)log_queries_not_using_indexes=1
强烈建议开启成1.
50)log_slow_admin_statements = 1
强烈建议开启成1.
51)log_slow_slave_statements = 1
强烈建议开启成1.
52)log_throttle_queries_not_using_indexes
推荐设置:
在一开始上线后的初期我们会开成30~50条 。随着性能逐渐优化我们会把这个数量开成10.
作用:
上线前一段时间会不太稳定,我们发生过近几十条sql没有走index
如果不配的后果:
不配不开启,建议开启 。
配置实例:
log_throttle_queries_not_using_indexes = 50
53)expire_logs_days
推荐设置:
30
作用:
这个值不能太大,因为你不是土豪,不能让binlog无限占用你的磁盘空间,记得这个值一旦设小,你需要做好binlog备份策略,30这个值就是30天,前提是你的binlog的备份做的有效且不占用mysql的磁盘空间 。
如果不配的后果:
默认是0,即永不过期 。
配置实例:
expire_logs_days = 30
54)long_query_time
推荐设置:
10
作用:
默认为10秒种,即一切>=10s的sql都会被记录 。我建议在开始刚上线期设成10(用默认值),越着慢sql调优越来越好,可以把这个值设成1.因为秒数越低,记录的sql越多,记录越多,也会造成mysql过慢 。另外不能完全依赖于mysql的慢sql log,而是应该布署druid sql实时查看器或者是apm或者是专业的慢sql实时查询器 。
如果不配的后果:
默认为10
配置实例:
long_query_time = 10
55)min_examined_row_limit
推荐设置:
100
作用:
这个值配合着慢查询sql记录用,指定为少于该值的行的查询就算慢sql不被记录成”慢sql日志“ 。
如果不配的后果:
不开启的话以慢sql的long_query_time为优先规则 。
配置实例:
min_examined_row_limit = 100
56)master_info_repository
推荐设置:
TABLE
作用:
  1. 主从复制时用,推荐TABLE.
  2. 从机保存主节点信息方式,设成file时 会生成master.info 和 relay-log.info2个文件,设成table,信息就会存在mysql.master_slave_info表中 。不管是设置的哪种值,都不要移动或者编辑相关的文件和表 。
如果不配的后果:
不配的话默认存成file格式 。
配置实例:
master_info_repository = TABLE
57)relay_log_info_repository
推荐设置:
TABLE
作用:
主从复制时用,推荐TABLE.
这个参数和上面的master_info_repository必须保持一致,要不然mysql实例启不起来 。
不过需要注意的是,这几个table默认用的是myIsAM引擎,要开启成TABLE模式的话一定记得把这两个表的引擎改成innodb
alter table slave_master_info engine=innodb;alter table slave_relay_log_info engine=innodb;alter table slave_worker_info engine=innodb;如果不配的后果:
这个参数和上面的master_info_repository必须保持一致,要不然mysql实例启不起来
配置实例:
relay_log_info_repository = TABLE
58)log_bin = bin.log
主从复制时用,主从复制下的bin.log日志所在文件夹 。
59)sync_binlog
推荐设置:
1
作用:
主从复制时用,这个值是要看业务的,它可以有0,1,非零共3种设置方式 。
1)0-代表mysql不控制写binlog的时间,由file system自由去控制,此时的mysql的并发性达到最好,但是一旦系统崩溃你会丢失很多还会写入binlog的数据(比如说你正在删数据和更新数据)
2)1-最安全,你最多丢掉一个事务或者是一条语句,但是此时它的性能很差,此参数设为0或者是1之间的性能能差4~5倍 。
3)如果你用的是万兆光纤高速磁盘像或者是ssd同时data和binlog都放在一个目录下的同时你要为了安全可以开启成1.


推荐阅读