適用情境
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關鍵字。