zoukankan      html  css  js  c++  java
  • MySQL主从复制读写分离如何提高从库性能-实战

    在做主从读写分离时候,需要注意主从的一些不同参数设置,来提高从库的性能,提高应用读取数据的速度,这样做很有必要的。

    做读写分离复制主从参数不同设置如下(需要根据自己应用实际情况来设置):

    parmeter

    master

    slave

    read_only

    off

    on

    innodb_flush_log_at_trx_commit

    1

    2

    sync_binlog

    1

    1000

    slave_parallel_workers

    8

    16

    server_id

    xxxx

    nnnn

    innodb_buffer_pool_size

    25G

    51G

    event_sheduler

    On

    Off

    Read_only:设置MySQL数据库是只读模式,如果做读写分离,最好把从库设置只读模式,避免数据在从库被修改,导致主从不一致问题。

    innodb_flush_log_at_trx_commit:控制事务日志何时写盘和刷盘,安全递增:0,2,1。从库的重要性没有主库大,所以从库可以设置为2,减小io压力。

    0:每秒一次事务缓存区刷新到文件系统,同时文件系统到磁盘同步,但是事务提交时,不会触发log_buffer到文件系统同步;

    2:每次事务提交时,会把事务缓存区日志刷新到文件系统中去,且每秒文件系统到磁盘同步;

    1:每次事务提交时刷新到磁盘,最安全;

    适用环境:

    0:磁盘IO能力有限,安全方便较差,无复制或复制延迟可以接受,如日志性业务,mysql损坏丢失1s事务数据;

    2:数据安全性有要求,可以丢失一点事务日志,复制延迟也可以接受,OS损坏时才可能丢失数据;

    1:数据安全性要求非常高,且磁盘IO能力足够支持业务,如充值消费,敏感业务;

    sync_binlog:控制刷新binlog到磁盘的频率,安全递增:0,1。从库的安全级别可以设置的低点,所以设置为1000,减少io压力。

    0:表示MySQL不控制binlog的刷新,由文件系统去控制它缓存的刷新。

    1:每1次事务提交,MySQL就调用文件系统的刷新操作刷新binlog到磁盘中。

    大于1的整数值:每多少提交,MySQL就调用文件系统的刷新操作刷新binlog到磁盘中。

    slave_parallel_workers:从端并行执行开启的进程数,从端并发线程增多,可以提高并发处理能力。

    innodb_buffer_pool_size:如果是只读从库,可以把innodb的buffer_pool设置大些,提高buffer命中,提高性能。

    server_id和event_sheduler不用说了,大家都知道。

  • 相关阅读:
    Intellij Idea开发工具在@Autowired或者@Resource注入XxxMapper接口时报如下错误Could not autowire. No beans of 'TbItemMapper' type found
    java.lang.IllegalStateException: getOutputStream() has already been called for this response解决方案
    Javaweb项目配置到阿里云服务器
    VMware15.5.0安装MacOS10.15.0系统 安装步骤(上)
    单元测试 springboot-test
    虚拟机字节码指令表
    tomcat服务器源码解读02-基本原理
    tomcat服务器源码解读01-整体结构
    Elasticsearch kibana官方基础本地实践
    虚拟机部署单机版kubernetes,minikube,docker
  • 原文地址:https://www.cnblogs.com/katec/p/9235573.html
Copyright © 2011-2022 走看看