mysql 8.0复制改进
一简介: 基于GTID下的并行复制,本文不考虑MGR架构
二 主要特性
   1 基于writeset的下的改进型并行复制
     我在之前的一篇文章关于并行复制中详细的介绍了关于各个版本的并行复制改进,这里只着重再指出8.0的新特性
     配置参数
     slave-parallel-type=LOGICAL_CLOCK //复制方式 
     binlog_transaction_dependency_tracking = WRITESET(写复制) (需要在主库设置并且主库开始在二进制日志中存储写入writeset信息)
     commit_order(默认,5.7并行复制)
     WRITESET_SESSION(在写复制基础上增加session约束)
     slave_parallel_workers=8 //复制线程
     slave-preserve-commit-order=on //按照顺序提交,5.7原生机制的并行复制顺序同一时间内的顺序混乱,必须添加此参数进行顺序控制
    1 过程 WRITESET 根据事务更新的每一行,计算一行hash,然后形成write_set集合.如果没有操作相同的行,hash值是不一样的,可以并发执行=>(唯一性索引名+库名+表名+值)
    2 暂时不清楚采用writeset是否会丢失事务,但是理论上写集合的复制是效率最高的

2 复制参数特性
    1 master_info_repository 和 relay_log_info_repository 默认设置为 TABLE,可以不必在配置文件中再进行标注
    2 expire_log_days 的默认值也变成了 30
    3 binlog_expire_log_seconds 默认(2592000,30天)更加细化的删除策略 
    4 slave_rows_search_algorithms 当表中不存在主键或主键等效(非空唯一二级索引)时,可以使用哈希表来避免重复的表扫描,防止出现之前的因为没有主键导致的主从延迟问题
    5 gtid_executed已不用再搭建从库时执行清空,直接执行SET GTID_PURGED ="+gtid_set"即可
      搭建从库方案
      1 mysqldump --single-transaction=1 -A --master-data=2 > a.sql
      2 mysql < a.sql && change master to && start slave
      简化了流程

mysql 8.0 主从复制的优化的更多相关文章

  1. MySQL基础、主从复制、优化

    MySQL apache公司 开源共享 免费 mysql [-hlocalhost] -uroot -p 以超级管理员的身份登录 use demo; 查看 DCL(数据库控制语言): DDL(数据库定 ...

  2. mysql 8.0 主从复制配置

    背景: 主库: 192.168.211.128 从库: 192.168.211.129 一.关闭防火墙 [root@node01 ~]# systemctl disable firewalld [ro ...

  3. MySQL 并行复制演进及 MySQL 8.0 中基于 WriteSet 的优化

    MySQL 8.0 可以说是MySQL发展历史上里程碑式的一个版本,包括了多个重大更新,目前 Generally Available 版本已经已经发布,正式版本即将发布,在此将介绍8.0版本中引入的一 ...

  4. mysql 8.0 ~ innodb与变量优化

    一  innodb的优化  1 已完全不支持myisam引擎  2 将自增主键的计数器持久化到redo log中.每次计数器发生改变,都会将其写入到redo log中.如果数据库发生重启,InnoDB ...

  5. MySQL与MariaDB核心特性比较详细版v1.0(覆盖mysql 8.0/mariadb 10.3,包括优化、功能及维护)

    注:本文严禁任何形式的转载,原文使用word编写,为了大家阅读方便,提供pdf版下载. MySQL与MariaDB主要特性比较详细版v1.0(不含HA).pdf 链接:https://pan.baid ...

  6. 为什么mysql要做主从复制?

    为什么MySQL要做主从复制(读写分离)? 通俗来讲,如果对数据库的读和写都在同一个数据库服务器中操作,业务系统性能会降低. 为了提升业务系统性能,优化用户体验,可以通过做主从复制(读写分离)来减轻主 ...

  7. MySQL数据库基础知识及优化

    MySQL数据库基础知识及优化必会的知识点,你掌握了多少? 推荐阅读: 这些必会的计算机网络知识点你都掌握了吗 关于数据库事务和锁的必会知识点,你掌握了多少? 关于数据库索引,必须掌握的知识点 目录 ...

  8. MySQL 8.0 新特性梳理汇总

    一 历史版本发布回顾 从上图可以看出,基本遵循 5+3+3 模式 5---GA发布后,5年 就停止通用常规的更新了(功能不再更新了): 3---企业版的,+3年功能不再更新了: 3 ---完全停止更新 ...

  9. MySql in子句 效率低下优化

    MySql in子句 效率低下优化 背景: 更新一张表中的某些记录值,更新条件来自另一张含有200多万记录的表,效率极其低下,耗时高达几分钟. where resid in ( ); 耗时 365s ...

随机推荐

  1. C#设计模式——单例模式的实现

    1. 什么是单例 保证一个类只有一个实例的实现方法. 2. 使用场景 页面访问计数器 需要保持状态的工具类 需求很多,不能一一列举了 3. 实现方 非线程安全 /// <summary> ...

  2. linux-docker下安装禅道全部

    友情提示:按照步骤走,99%的人会安装成功,1%的人可以咨询度娘 64位电脑安装禅道,满足发送邮件功能 第一步: docker ps 查看docker中的容器是否有禅道(docker ps -a    ...

  3. 汉化DevExpress

    现在的DevExpress组件包提供了TcxLocalizer,拖一个放到Form上. 然后设置相关的属性: 即可完成汉化了!怎么样,够简单!!! 需要DevChs.ini文件的朋友,点击链接加入群聊 ...

  4. PHP 出现中文乱码的问题

    在代码中添加 <?php //设置页面显示的文字编码 头部就写header函数处理成utf-8 header("Content-Type:text/html;charset=utf-8 ...

  5. 关于shell命令的一些用法和技巧

    #!/bin/bash #第一种写法 #date=`date "+%Y-%m-%d %H:%M:%S"` #第二种写法 date=$(date "+%Y-%m-%d %H ...

  6. Spring 内部注入bean

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  7. SpringMVC后台接受前台传值的方法

    1.HttpRequestServlet 接收前台传值 @RequestMapping("/go5") public String hello5(HttpServletReques ...

  8. Android方法引用超过65535的解决方式

    //在app/build.gradle android { compileSdkVersion buildToolsVersion "24.0.1" defaultConfig { ...

  9. 正确处理下载文件时HTTP头的编码问题(Content-Disposition)

    留坑 参考: 正确处理下载文件时HTTP头的编码问题(Content-Disposition) HTTP协议header中Content-Disposition中文文件名乱码 文件下载,content ...

  10. ECSIDE标签

    ECSIDE标签之<ec:table>标签的属性说明与使用   EC side是基于jsp tag的开源列表组件,可以帮助我们快速实现墙大的列表的jsp标签.EC side可以展现列表(分 ...