シナリオ
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キーワードを明示的に指定する必要はありません。