mysql 优化(摘自华为培训)

1.back_log
参数含义:MySQL每处理一个连接请求的时候都会对应的创建一个新线程,那么在主线程创建新线程期间,如果前端应用有大量的短连接进入到数据库,
为了保证当前事务及MySQL本身的稳定性,MySQL不可能无限制的接受新连接进入请求队列。请求队列的大小就是由back_log控制,如果等待的连接数量超过back_log,
则将不会接受新的连接请求,所以如果需要MySQL并发处理大量的短连接,需要提高此参数的大小。
取值范围:1--65535推荐值:600
注意:该参数值不能超过MySQL服务器TCP/IP连接的侦听队列的大小。若超过则无效,
查看当前系统的TCP/IP连接的侦听队列的大小命令:
cat /proc/sys/net/ipv4/tcp_max_syn_backlog


2. binlog_error_action
参数含义:Binlog_error_action参数控制当不能写binlog时,mysql本身会怎样处理这个状态。设置binlog_error_action=ABORT_SERVER会使mysql在写binlog遇到错误时退出。
在ABORT_SERVER模式下,binlog和从库都是安全的。
binlog_error_action=IGNORE_ERROR,如果无法写入binlog,mysql会在error.log中记录相关错误信息并强制关闭binlog功能。
这会使mysql在不记录binlog的模式下继续运行,导致从库无法继续获取到主库的binlog。
取值范围:IGNORE_ERROR | ABORT_SERVER
推荐值:ABORT_SERVER


3. binlog_format
参数含义:该参数控制MySQL是以如何格式记录二进制日志Binlog的。
STATEMENT(SBR):Binlog记录的只是sql语句,日志量最少。
ROW(RBR):Binlog记录完成的数据变更记录,日志量最大,但是最安全的。
MIXED(MBR):MySQL根据一定的规则决定以何种格式记录binlog。在以下场景自动从STATEMENT格式转换为ROW格式。
如:UUID(), UDF, AUTO_INCREMENT columns, LOAD_FILE(), USER(), CURRENT_USER(), or CURRENT_USER等等
取值范围:ROW | MIXED | STATEMENT
推荐值:ROW


4. lower_case_table_names
参数含义:控制MySQL中库名、表名、表别名是否区分大小写。0代表区分,1代表不区分。
取值范围:0 | 1
推荐值:1


5. innodb_file_format
参数含义:控制Innodb引擎的行存储机制。Innodb引擎还支持行数据压缩特性,不过前提是采用Barracuda行存储格式。
表空间启用压缩的前提是innodb表空间文件存储格式修改成Barracuda,此外需要修改innodb_file_format_max= Barracuda
取值范围:Antelope | Barracuda
推荐值:Barracuda


6. max_binlog_size
参数含义:控制单个Binlog日志大小,一旦达到该参数的限制,会产生新的binlog文件。
取值范围:4096--1073741824
推荐值:512M


7. innodb_log_file_size参数含义:该参数控制Innodb事务日志文件的大小,日志写满后进行日志切换。所有日志的总大小不能超过512GB,
即innodb_log_file_size * innodb_log_files_in_group的值不能大于512GB.
推荐值:512M


8. innodb_log_files_in_group参数含义:控制Innodb事务日志的个数。如果设置的太小,遭遇事务高峰期,会产生大量的事务日志,频繁发生日志切换。
当日志1写满需要切换日志2时,如果日志2中事务对应的脏数据未完成落盘,日志切换只能等待,严重影响mysql的性能。
取值范围:2--100
推荐值:6


9. relay_log_info_repository
参数含义:控制从库的重做信息以何种方式保存。设置为file,sql线程先提交事务,再记录relay.info文件。
假如在relay.info刷盘那一刻宕机,relay.info文件中没有记录,那么从库重启mysql进程后们就会执行两边同样的sql,
导致同步复制报错。设置为table,sql线程执行完事务后,立即更新slave_relay_log_info表,如果在更新过程中宕机,
则事务会回滚,slave_relay_log_info表并不会记录同步的点,下次重新同步时,从之前的pos点再次执行。
取值范围:table|file
推荐值:table

10. relay_log_recovery
参数含义:Slave宕机重启后,对relay-log的处理方式。当slave宕机后,假如relay_log损坏,
导致一部分中继日志没有处理,则自动放弃所有未执行的relay-log,并且重新从MASTER上索取日志,保证relay的完整性。
默认情况下该功能是关闭的。建议在从库上开启次功能。
取值范围:ON | OFF
推荐值:ON

  

posted @ 2019-10-24 14:16  caonw  阅读(272)  评论(0编辑  收藏  举报