• MySQL并行复制


    在MySQL中,为了提高从服务器的复制效率和性能,可以使用并行复制(Parallel Replication)。replica_parallel_workersreplica_parallel_type 是与并行复制配置相关的两个系统变量。

    replica_parallel_workers

    定义: replica_parallel_workers(在某些版本中被称作slave_parallel_workers)指定了在从服务器上用于并行处理复制事件的工作线程数。

    作用:

    • 并行处理: 通过多个线程并行应用事件(比如事务),从而加速事务的复制过程。
    • 性能提升: 当主服务器上多个事务彼此独立时,这种并行处理可以显著减少延迟,并提升从服务器处理复制数据的速度。

    默认值与范围: 默认值通常为0,意味着不启用并行复制。可设置的值范围是0到MAX_WORKERS(依赖具体MySQL版本)之间的任何整数。

    replica_parallel_type

    定义: replica_parallel_type 定义了从服务器并行复制的策略或模式。这个变量控制着如何将复制事件分配给不同的worker线程以便并行执行。

    作用:

    • 决定并行方式: 根据设置的类型,从服务器处理并行复制的逻辑会有所不同。
    • 优化复制策略: 不同的并行类型可能对特定的工作负载和复制场景更有效。

    选项:

    1. DATABASE: 按数据库分配事件给不同的worker。只有当事务涉及的修改操作限定在不同的数据库时,这些事务才能并行。
    2. LOGICAL_CLOCK: 使用逻辑时钟来决定哪些事件可以安全地并行应用。这种方法可以提供跨多个数据库的更广泛的并行度。

    默认值与影响: DATABASE 在早期版本中是默认设置,但在后续版本中,推荐并普遍更改为 LOGICAL_CLOCK,因为后者提供了更高效的并行复制方式。

    举例说明

    假设一个主服务器正在同时处理两个大型事务,且它们涉及不同的数据库:

    • 事务A更新了数据库db1的表。
    • 事务B更新了数据库db2的表。

    如果replica_parallel_workers 设置为2或更多,并且replica_parallel_type设置为DATABASE,则从服务器可以同时在两个不同的线程中处理这两个事务的复制和应用,极大加速复制过程。

    换句话说,即使主服务器按顺序提交这些事务,从服务器仍可以利用并行性同时处理它们,从而实现更好的复制性能。

  • 相关阅读:
    anaconda ( jupyter notebook ) 虚拟环境安装 lazypredict
    ndk的坑
    java小区物业水电费管理系统springboot+vue
    N皇后问题
    11--Django-Ajax使用-前后端序列化、反序列化及layer组件
    【开源】基于Vue和SpringBoot的智能教学资源库系统
    2024年软件测试面试必看系列,看完去面试你会感谢我的!!
    为啥小扎一直醉心于元宇宙的布局?
    二十三种设计模式全面解析-组合模式与迭代器模式的结合应用:构建灵活可扩展的对象结构
    Stirling-PDF 安装和使用教程
  • 原文地址:https://blog.csdn.net/jkzyx123/article/details/138184561