全部產品
Search
文件中心

:手動分區

更新時間:Jul 06, 2024

適用情境

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關鍵字。

相關文檔