适用场景
PolarDB-X手动分区适合对业务性能有要求的应用,尤其是高并发高吞吐的核心应用。 因此,手动分区要求使用者需要对分布式数据库原理有所了解。但是,手动分区可以让用户选择最适合应用场景的维度进行水平切分,因此,手动分区最能发挥出分布式数据库的扩展性与高性能。
在实际应用的过程中,关于透明分布式的手动分区工作模式的适用场景,可以参考最佳实践。
创建使用手动分区的数据库
在PolarDB-X中,要使用透明分布式的手动分区工作模式,可以使用以下的建库 SQL(创建AUTO模式数据库):
CREATE DATABASE autodb1 MODE='auto'
手动分区的表类型及其使用方式
PolarDB-X中的手动分区,允许用户手动创建三种不同类型的逻辑表,它们分别是:单表、广播表与分区表。
这三种类型的表的物理表的拓扑各不一样,并分别适用于不同的场景,具体如下表所示:
逻辑表类型 | 物理表托扑 | 适用场景 | 读写负载分析 |
单表 | 一个单表对应一张物理表。 | 数据量较小、并发访问的小表。 | 读写集中在一个DN节点 |
广播表 | 广播表在每个DN节点都有一个镜像,它们之间的数据总是完全一样。 | 适合于读多写少、数据量不大的表,比如配置表。 | 读均衡:可以随机地分摊到不同DN节点 写放大:需要同时写所有 DN的镜像,保持一致。 |
分区表 | 分区表有多个分区并分布到多个DN节点,且每个分区对应一个物理表。 | 适用于高并发高吞吐的数据大的表。 | 读写压力能按分区列条件自动路由到不同DN节点,实现负载均衡。 |
方式一:手动指定所有表的分区方案
手动创建单表
语法
CREATE TABLE xxx (...)
SINGLE
示例
CREATE TABLE sin_tbl(
id bigint not null auto_increment,
bid int,
name varchar(30),
birthday datetime,
primary key(id)
)
single ;
手动创建广播表
语法
CREATE TABLE xxx (...)
BROADCAST
示例
CREATE TABLE bro_tbl(
id bigint not null auto_increment,
bid int,
name varchar(30),
birthday datetime,
primary key(id)
)
broadcast ;
手动创建分区表
创建分区表相关用法,请参考手动创建分区表。
方式二:手动关闭默认自动分区
设置全局变量关闭默认的自动分区:
SET GLOBAL AUTO_PARTITION=false;
设置后,创建单表无须显式指定SINGLE关键字。
相关文档
文档内容是否对您有帮助?