すべてのプロダクト
Search
ドキュメントセンター

PolarDB:手動パーティショニング

最終更新日:Feb 20, 2025

シナリオ

PolarDB-Xの手動パーティショニング機能は、高性能が必要なアプリケーション、特に同時実行性とスループットが高いコアアプリケーションに適しています。 手動パーティション機能を使用するには、分散データベースの仕組みを理解しておく必要があります。 手動パーティショニングを使用すると、サービスに最適なディメンションでテーブルを水平にパーティショニングできます。 適切に使用される手動パーティショニングは、分散データベースの拡張性とパフォーマンスを完全に発揮します。

手動パーティション分割機能を使用するデータベースの作成

PolarDB-Xで透過的な分散手動パーティショニング機能を使用する場合は、SQL文を使用してAUTOデータベースを作成できます。

データベースの作成autodb1 MODE='auto'

手動でパーティション分割されたテーブルの種類と使用

PolarDB-Xの手動パーティション分割機能を使用すると、非パーティションテーブル、ブロードキャストテーブル、パーティションテーブルの3種類の論理テーブルを手動で作成できます。

3つのタイプのテーブルは、異なる物理テーブルトポロジーを有し、異なるシナリオに適している。 次の表では、テーブルについて説明します。

論理テーブルタイプ

物理テーブルトポロジー

シナリオ

読み込みと書き込みロード

パーティション分割されていないテーブル

非分割テーブルは、物理テーブルに対応する。

データ量が少なく、同時実行性が低い小さなテーブル。

読み書きは1つのデータノードに集中します。

放送テーブル

ブロードキャストテーブルは、各データノードにイメージを有し、イメージ間のデータは常に一貫している。

ブロードキャストテーブルは、構成テーブルのように、読み出し回数が多く、書き込み回数が少ないテーブルに適している。

読み取り残高: 読み取りは、異なるデータノードにランダムに割り当てることができます。

書き込み増幅: 一貫性を維持するには、すべてのデータノードのイメージにデータを書き込む必要があります。

パーティションテーブル

パーティションテーブルには複数のパーティションがあり、複数のデータノードに分散されます。 各パーティションは、物理テーブルに対応する。

パーティション化されたテーブルは、大量のデータ、高い同時実行性、および高いスループットを持つテーブルに適しています。

読み取りと書き込みは、負荷のバランスを取るために、パーティションキー列に基づいて異なるデータノードに自動的にルーティングできます。

方法1: すべてのテーブルのパーティションスキームを手動で指定する

パーティション分割されていないテーブルを手動で作成する

構文

テーブルxxxの作成 (...)
シングル 

テーブルの作成sin_tbl (
 id bigint not null auto_increment, 
 bid int, 
 名前varchar(30) 、
 birthday datetime,
 主キー (id)
)
シングル; 

ブロードキャストテーブルを手動で作成する

構文

テーブルxxxの作成 (...)
放送 

テーブルの作成bro_tbl (
 id bigint not null auto_increment, 
 bid int, 
 名前varchar(30) 、
 birthday datetime,
 主キー (id)
)
放送; 

パーティション分割テーブルを手動で作成する

パーティションテーブルの作成方法の詳細については、「手動でパーティションテーブルを作成する (AUTOモード)」をご参照ください。

方法2: デフォルトの自動パーティション分割機能を手動で無効にする

デフォルトの自動パーティショニング機能を無効にするグローバル変数を設定します。

SET GLOBAL AUTO_PARTITION=false;

グローバル変数を設定した後、パーティション分割されていないテーブルを作成するときに、SINGLEキーワードを明示的に指定する必要はありません。