ポイントテーブルと倉庫(シャーディングポーター)のSQL概念

論理表

スプリットレベル総称データベース(表)と同じ論理テーブルのデータ構造。例:それぞれ、仮数の主キーテーブル10の順番に従ってデータを分割t_order_0t_order_9、それらの論理名テーブルt_order

実際のテーブル

物理的なフラグメンテーションテーブルデータベース本物。すなわち、前述の例ではt_order_0t_order_9

データノード

最小単位スライスデータパーティション。例えば、データソース名データテーブル、: ds_0.t_order_0

バインディングテーブル

これは、主フラグメンテーション一貫したルールと子テーブルを参照します。たとえば、次のt_orderテーブルとt_order_itemテーブルに従ってorder_idフラグメンテーションこの2つは、相互関係テーブルを結合します。結合テーブルマルチテーブルクエリとの間の相関は、関連付けが大幅クエリ効率を強化する、デカルト積の関連付けは表示されません。たとえば、SQLの場合:

SELECT i.* FROM t_order o JOIN t_order_item i ON o.order_id=i.order_id WHERE o.order_id in (10, 11);

構成は、テーブルの関係を結合断片キーを想定されていない場合order_id、次にSQL経路は4でなければならない、最初のシート11に値をルーティングする、0〜10までの経路の値を、提示デカルト積です。

SELECT i.* FROM t_order_0 o JOIN t_order_item_0 i ON o.order_id=i.order_id WHERE o.order_id in (10, 11);

SELECT i.* FROM t_order_0 o JOIN t_order_item_1 i ON o.order_id=i.order_id WHERE o.order_id in (10, 11);

SELECT i.* FROM t_order_1 o JOIN t_order_item_0 i ON o.order_id=i.order_id WHERE o.order_id in (10, 11);

SELECT i.* FROM t_order_1 o JOIN t_order_item_1 i ON o.order_id=i.order_id WHERE o.order_id in (10, 11);

結合関係を設定した後、SQLをルーティングすると、2つのようになります。

SELECT i.* FROM t_order_0 o JOIN t_order_item_0 i ON o.order_id=i.order_id WHERE o.order_id in (10, 11);

SELECT i.* FROM t_order_1 o JOIN t_order_item_1 i ON o.order_id=i.order_id WHERE o.order_id in (10, 11);

前記t_orderFROMのほとんどを残し、ShardingSphereは、マスター表の全体の結合テーブルとして使用します。すべてのルートは、メインテーブルの唯一の戦略を使用して計算され、t_order_itemテーブルが断片化計算するために使用されるt_order条件。したがって、パーティションキーバインディングテーブルとの間に同一です。

ブロードキャストテーブル

テーブルを参照し、データ・ソース内のすべてのフラグメントのテーブル構造とデータテーブルは、それらが各データベースで同一で存在します。これは、例えば、データの量と、大量のデータのクエリとテーブルのシーンを関連付ける必要に適用されます:ディクショナリ表。

公開された22元の記事 ウォン称賛21 ビュー10000 +

おすすめ

転載: blog.csdn.net/corleone_4ever/article/details/101014675