zoukankan      html  css  js  c++  java
  • mysql配置文件小优化及主主模式

    这只是个人工作中的参数
     
    不区分大小写
    lower_case_table_names=1
     
     
    #索引和数据缓冲区大小,一般设置物理内存的60%-70% 
    innodb_buffer_pool_size = 5G

    #缓冲池实例个数,推荐设置4个或8个
    innodb_buffer_pool_instances = 4

    #关键参数,0代表大约每秒写入到日志并同步到磁盘,数据库故障会丢失1秒左右事务数据。1为每执行一条SQL后写入到日志并同步到磁盘,I/O开销大,执行完SQL要等待日志读写,效率低。2代表只把日志写入到系统缓存区,再每秒同步到磁盘,效率很高,如果服务器故障,才会丢失事务数据。对数据安全性要求不是很高的推荐设置2,性能高,修改后效果明显
    innodb_flush_log_at_trx_commit = 2

    #默认是共享表空间,共享表空间idbdata文件不断增大,影响一定的I/O性能。推荐开启独立表空间模式,每个表的索引和数据都存在自己独立的表空间中,可以实现单表在不同数据库中移动。
    innodb_file_per_table = OFF

    #日志缓冲区大小,由于日志最长每秒钟刷新一次,所以一般不用超过16M
    innodb_log_buffer_size = 8M 


    # Remove leading # to turn on a very important data integrity option: logging
    # changes to the binary log between backups.
     log_bin=mysql-bin

    # These are commonly set, remove the # and set as required.
     basedir = /usr/local/mysql
     datadir = /data
    # port = .....
     server_id = 1002
    # socket = .....

    # 注:当设置隔离级别为READ-COMMITED必须设置二进制日志格式为ROW,MySQL官方认为STATEMENT这个已经不再适合继续使用;但mixed类型在默认的事务隔离级别下,可能会导致主从数据不一致; 推荐使用 row  
    binlog-format=ROW

    # 启用这个参数,可用于在二进制日志记录事件相关的信息,可降低故障排除的复杂度  
    # 只对row binlog格式有效.启用后,会向binlog中写入更多的调试信息,比如sql语句自身都会被写进去. mysqlbinlog -vv 可以看到.  
    binlog-rows-query-log_events= 1
      
    # 这个选项允许应用程序只能对行的镜像数据进行复制,而不在关心行是否已经进行了DML操作.这提高了主从机器的复制吞吐量,减少了二进制日志所占用的磁盘空间、网络资源和内存占用.
    binlog-row-image = minimal

    report-host= 192.168.140.199
    report-port= 3306
    gtid-mode= on
    enforce-gtid-consistency= true
    log-slave-updates= true

    # master-info-repository/relay-log-info-repository都设置为TABLE,mysql.slave_master_info与 mysql.slave_relay_log_info 中,table都是innodb类型的,支持事务,比文件安全 # 默认值是FILE, 比如master info就保存在master.info文件中,relay log info保存在relay-log.info文件中,如果服务器意外关闭,正确的relay info 没有来得及更新到 relay-log.info文件,这样会造成数据丢失
    master-info-repository= TABLE  
    relay-log-info-repository= TABLE

    # 启用之后,使binlog在每N次binlog写入后与硬盘 同步
    sync-master-info=1

    # 以下是对二进制日志一些设置  
    binlog_cache_size = 4M  
    max_binlog_size = 1G  
    max_binlog_cache_size = 2G  
    # 以下这几个参数是启用binlog/relaylog的校验,防止日志出错  
    binlog-checksum= CRC32  
    slave_allow_batching = 1  
    master-verify-checksum= 1  
    slave-sql-verify-checksum= 1 

    # 开启基于库的多线程复制.默认是0,不开启,最大并发数为1024个线程  
    slave-parallel-workers=4

    # Remove leading # to set options mainly useful for reporting servers.
    # The server defaults are faster for transactions and fast SELECTs.
    # Adjust sizes as needed, experiment to find the optimal values.
    # join_buffer_size = 128M
    # sort_buffer_size = 2M
    # read_rnd_buffer_size = 2M 

    #查询排序时缓冲区大小,只对order by和group by起作用,可增大此值为16M
    sort_buffer_size = 16M

    #查询缓存限制,只有1M以下查询结果才会被缓存,以免结果数据较大把缓存池覆盖
    query_cache_limit = 1M

    #查看缓冲区大小,用于缓存SELECT查询结果,下一次有同样SELECT查询将直接从缓存池返回结果,可适当成倍增加此值
    query_cache_size = 16M

    #打开文件数限制,如果show global status like 'open_files'查看的值等于或者大于open_files_limit值时,程序会无法连接数据库或卡死
    open_files_limit = 1024
     
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    [root@localhost include]# cat /etc/my.cnf
  • 相关阅读:
    多态及鸭子类型
    面向对象三大特性之——继承
    类的组合
    类的成员和命名空间
    JAVA中常用的类
    JAVA自学笔记(5)
    JAVA自学笔记(4)
    JAVA自学笔记(3)
    JAVA自学笔记(2)
    JAVA自学笔记(1)
  • 原文地址:https://www.cnblogs.com/jiange13/p/4835485.html
Copyright © 2011-2022 走看看