多主分区表概述

本文将详细介绍多主集群分区表的相关信息。

背景信息

随着业务的快速发展,单个数据库可能难以承受日益增长的数据量和访问压力,导致系统响应慢、处理能力受限。为应对这一挑战,PolarDB MySQL推出多主集群分区表解决方案。这是一款创新型云原生数据库,支持自动水平拆分、混合共享存储和shared nothing架构。该方案能够根据拆分规则自动将数据分布到多个分库中,实现每个节点的读写功能,真正实现分布式处理能力。通过水平拆分实现,不仅可以提升可线性数据库整体并发吞吐能力,同时又具备共享存储架构数据库按需资源分配和资源利用率高的特点。

多主分区表采用存储与计算分离的架构:

说明
  • 存储层:存储层池化存储资源(共享存储),提供按需资源分配。

  • 计算层:计算层支持多个节点同时读写(无共享),以横向扩展读写性能。

image

支持的内核版本

目前仅PolarDB MySQL8.0内核版本支持多主分区表。

核心优势和能力

  • 自动水平拆分

    在创建多主分区表时,可以指定分区键,系统将根据不同分表键将数据自动分布到不同的物理分片中,无需手动分区。

  • 对业务透明

    对于多主分区表的操作体验与单机数据库几乎一样,使用过程中无需关注数据的物理分布。

  • 秒级横向写扩展

    支持在多达63个计算节点上同时执行写入任务,极大地增强了系统的并行处理能力和弹性伸缩范围。更重要的是,这种扩展过程不需要额外的数据迁移工作,可以在几秒钟内完成负载均衡调整。

  • 一体化分布式DDL

    提供了一个全面集成的一体化分布式DDL框架,确保所有相关联的操作如添加/删除索引、修改列定义等都能在一个统一且透明的过程中顺利完成,极大简化了维护流程。

  • 自动汇聚功能

    通过全局RO节点自动汇聚所有分区数据,可以读取到所有数据,无需额外存储和同步链路。

适用场景

多主集群分区表(完全兼容多主集群)主要面向电商、游戏等高并发读写的应用场景。

  • 电商交易场景

    场景特点:电商交易系统通常需要在高强度作业的情况下维持长期的稳定性和低延迟响应,同时还面临着百亿行大表、高并发流量写入瓶颈、热点秒杀及单机存储上限等多重挑战。

    解决方案:多主分区表提供透明的分区能力,通过指定拆分键实现物理分区的水平扩展,从而分散单节点的处理压力。这样,确保每次交易的执行性能与在单节点上无缝进行一致,大幅降低了运维的复杂度。

  • 分表分库场景

    场景特点:在大规模业务数据和极高并发访问的核心应用场景中,许多客户使用分表分库中间件来应对数据量庞大、并发请求密集以及对系统稳定性有严格要求的挑战。然而,传统的分布式中间件通常缺乏高效的分布式DDL支持和灵活的扩缩容能力。

    解决方案:多主分区表提供了一体化的分布式DDL解决方案,无论是表结构的修改还是索引的增删,都能在分布式环境中顺利执行。该解决方案能够根据业务负载智能感知并调整资源分配,无需数据迁移即可轻松实现横向扩缩容。此外,提供了统一直观的管理界面,集中监控与管理所有数据库节点,帮助运维人员快速定位问题并执行日常运维任务,从而确保系统的稳定性和可靠性。

性能对比

使用Sysbench分别压测了市面上主流商用的分布式数据库1、分布式数据库2、以及PolarDB多主分区表:

  • 测试说明:在购买页面,分别购买分布式数据库1、分布式数据库2以及PolarDB多主分区表,确保所购买创建的集群成本一致

  • 测试过程:Sysbench在一台32128GB内存的ECS测试机上运行,通过128个并发请求线程对各个分布式数据库进行性能测试。测试了四种工作负载模式:oltp_point_select、oltp_read_only、oltp_write_onlyoltp_read_write从而评估各个分布式数据库的性能表现。

  • 测试结果:以下是对各个分布式数据库性能对比如下,以QPS为例:

image

从上述图表可以看出,在各种工作负载下,PolarDB多主分区表的性能表现明显优于市面上主流的分布式数据库1和分布式数据库2。