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