zoukankan      html  css  js  c++  java
  • 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
    

      

  • 相关阅读:
    [USACO17FEB]Why Did the Cow Cross the Road III S
    [POI2015]PIE
    GSS3
    Bzoj3203: [Sdoi2013]保护出题人 凸包 + 三分
    斜率优化
    fread优化读入
    [USACO09JAN]安全出行Safe Travel 最短路,并查集
    zookeeper单机模式实现分布式,开发部署测试模式机器有限情况
    解决 jmeter An error occurred: Error while processing samples:Mismatch
    python 垃圾回收解析
  • 原文地址:https://www.cnblogs.com/caonw/p/11731897.html
Copyright © 2011-2022 走看看