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

PolarDB:ルールとトポロジのクエリ文

最終更新日:May 27, 2024

このトピックでは、ルールとトポロジのクエリ文について説明します。

SHOW RULE [タブラメから]

説明:
  • show rule: データベース内の各論理テーブルのシャーディングの詳細を照会します。
  • show rule from tablename: データベース内の指定された論理テーブルのシャーディングの詳細を照会します。
ショールール;
+ ---- ---------- --------------- ------------------ + --------------------- + --------------------- + -------------------- + --------------------- +
| ID | テーブル名 | 放送 | DB_PARTITION_KEY | DB_PARTITION_POLICY | DB_PARTITION_COUNT | TB_PARTITION_KEY | TB_PARTITION_POLICY | TB_PARTITION_COUNT |
+ ---- ---------- --------------- ------------------ + --------------------- + --------------------- + -------------------- + --------------------- +
| 0 | k_1 | 0 | k | ハッシュ | 40 | k | ハッシュ | 2 |
| 1 | k_2 | 0 | k | ハッシュ | 40 | k | ハッシュ | 2 |
| 2 | sbtest1 | 0 | id | ハッシュ | 40 | id | ハッシュ | 2 |
| 3 | t1 | 0 | id | ハッシュ | 40 | id | ハッシュ | 4 |
+ ---- ---------- --------------- ------------------ + --------------------- + --------------------- + -------------------- + --------------------- +
セットの4列 (0.05秒) 
重要な列:
  • BROADCAST: テーブルがブロードキャストテーブルかどうかを示します。 値0は、テーブルがブロードキャストテーブルではないことを示す。 値1は、テーブルがブロードキャストテーブルであることを示す。
  • DB_PARTITION_KEY: データベースシャードキー。 データベースシャードが存在しない場合、パラメーター値は空です。
  • DB_PARTITION_POLICY: データベースシャーディングポリシー。 パラメータ値は、YYYYMM、YYYYDD、YYYYWEEKなどの形式のハッシュ値または日付値とすることができる。
  • DB_PARTITION_COUNT: データベースシャードの数。
  • TB_PARTITION_KEY: テーブルシャードキー。 テーブルシャードが存在しない場合、パラメーター値は空です。
  • TB_PARTITION_POLICY: テーブルシャーディングポリシー。 パラメータ値は、MM、DD、MMDD、およびWEEKなどの形式のハッシュ値または日付値にすることができます。
  • TB_PARTITION_COUNT: テーブルシャードの数。

フルルールを表示 [タブラメから]

このSQL文を実行して、データベース内の論理テーブルのシャーディングルールを表示できます。 このステートメントは、SHOW RULEステートメントよりも多くの情報を返します。

ショー完全なルール;
---- ----------- ----------------------------------- ----------------------- ---------------------- ---------------------- -------------------------------------------------- ----------------
| ID | TABLE_NAME | BROADCAST | JOIN_GROUP | ALLOW_FULL_TABLE_SCAN | DB_NAME_PATTERN | DB_RULES_S_STR | TB_NAME_PATTERN | TB_RULES_STR | PARTIONION_KEYS | DEFAULT_DB_INDEX |
---- ----------- ----------------------------------- ----------------------- ---------------------- ---------------------- -------------------------------------------------- ----------------
| 0 | k_1 | 0 | NULL | 1 | TEST1_{000000}_GROUP | ((#k,1,80#).longValue().abs() % 80).intdiv(2) | k_1_cewR_{00} | (((#k,1,80#).longValue()).abs() % 80) | k | TE1_ST1_GROUP |
| 1 | k_2 | 0 | NULL | 1 | TEST1_{000000}_GROUP | ((#k、1,80#).longValue().abs() % 80).intdiv(2) | k_2_1xsQ_{00} | (((#k、1,80#).longValue()).abs() % 80) | k | TEST1_GLE_SIN_GROUP |
| 2 | sbtest1 | 0 | NULL | 1 | TEST1_{000000}_GROUP | (((#id、1,80#).longValue().abs() % 80).intdiv(2) | sbtest1_wO5k_{00} | (((#id、1,80#).longValue()).abs() % 80) | id | TEST1_GLE_SIN1_GLE_GROUP |
| 3 | t1 | 0 | NULL | 1 | TEST1_{000000}_GROUP | (((#id、1,160#).longValue().abs() % 160).intdiv(4) | t1_EMrC_{000} | (((#id、1,160#).longValue().abs() % 160)) | id | TEST1_SINGLE_GROUP | | |
---- ----------- ------------------------------------- ----------------------- ---------------------- ---------------------- -------------------------------------------------- 
重要な列:
  • BROADCAST: テーブルがブロードキャストテーブルかどうかを示します。 値0は、テーブルがブロードキャストテーブルではないことを示す。 値1は、テーブルがブロードキャストテーブルであることを示す。
  • JOIN_GROUP: 予約済みフィールド。 このフィールドは一時的に無意味です。
  • ALLOW_FULL_TABLE_SCAN: シャーディングにテーブルシャードキーが指定されていない場合にデータクエリが許可されるかどうかを示します。 このパラメーターをtrueに設定すると、各物理テーブルがスキャンされ、条件を満たすデータが検索されます。 これはフルテーブルスキャンです。
  • DB_NAME_PATTERN: パラメーター値で中かっこ ({}) で囲まれた数字0がプレースホルダーです。 SQL文が実行されると、プレースホルダーはDB_RULES_STRの値に置き換えられます。 パラメータ値の桁数は変更されません。 たとえば、DB_NAME_PATTERNの値がSEQ_{0000}_RDSで、DB_RULES_STRの値が [1,2,3,4] の場合、SEQ_0001_RDS、SEQ_0002_RDS、SEQ_0003_RDS、およびSEQ_00004_RDSのDB_NAME値が生成されます。
  • DB_RULES_STR: データベースのシャーディングルール。
  • TB_NAME_PATTERN: パラメーター値で中括弧 ({}) で囲まれた数字0がプレースホルダーです。 SQL文が実行されると、プレースホルダーはTB_RULES_STRの値に置き換えられます。 パラメータ値の桁数は変更されません。 例えば、TB_NAME_PATTERNの値がtable_{00} であり、TB_RULES_STRの値が [1,2、3,4、5,6、7,8] である場合、次のテーブルが生成される: table_01、table_02、table_03、table_04、table_05、table_06、table_07、table_08。
  • TB_RULES_STR: テーブルシャーディングルール。
  • PARTITION_KEYS: データベースとテーブルシャードキーのセット。 データベースシャーディングとテーブルシャーディングが実行される場合、データベースシャードキーはテーブルシャードキーの前に配置されます。
  • DEFAULT_DB_INDEX: 非シャードテーブルが格納されているデータベースシャード。

tablenameからTOPOLOGYを表示する

このSQL文を実行して、指定した論理テーブルのトポロジを表示できます。 この情報には、論理テーブル内のデータが割り当てられているデータベースシャードと、各データベースシャード内のテーブルシャードが含まれます。

はEMPからのTOPOLOGYを示します;
------ -------------------------------------------------- -------------
| ID | GROUP_NAME | テーブル名 |
------ -------------------------------------------------- -------------
| 0 | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_0000_RDS | emp_0 |
| 1 | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_0000_RDS | emp_1 |
| 2 | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_0001_RDS | emp_0 |
| 3 | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_0001_RDS | emp_1 |
| 4 | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_0002_RDS | emp_0 |
| 5 | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_0002_RDS | emp_1 |
| 6 | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_0003_RDS | emp_0 |
| 7 | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_0003_RDS | emp_1 |
| 8 | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_0004_RDS | emp_0 |
| 9 | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_0004_RDS | emp_1 |
| 10 | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_0005_RDS | emp_0 |
| 11 | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_0005_RDS | emp_1 |
| 12 | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_0006_RDS | emp_0 |
| 13 | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_0006_RDS | emp_1 |
| 14 | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_0007_RDS | emp_0 |
| 15 | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_0007_RDS | emp_1 |
+ ----- + -------------------------------------------------- ------------ + 

tablenameからの会合を示す

このSQL文を実行して、データベースとテーブルシャードキーのセットを表示できます。 データベースシャードキーとテーブルシャードキーは、コンマ (,) で区切ります。 2つの値が返された場合、データベースシャーディングとテーブルシャーディングが実行されます。 最初の値はデータベースシャードキーで、2番目の値はテーブルシャードキーです。 値が1つだけ返された場合、データベースシャーディングのみが実行されます。 この値はデータベースシャードキーです。

はEMPからの会合を示します;
+ ----------
| キー |
+ ----------
| emp_no,id |
+ ----------
セットの1列 (0.00秒)
            

放送番組

このSQL文を実行して、ブロードキャストテーブルを表示できます。

ショー放送;
------ -------------
| ID | タブレット名 |
------ -------------
| 0 | brd2 |
| 1 | brd_tbl |
------ -------------
セットの2列 (0.01秒)
            

データソースを表示する

このSQL文を実行して、基になるストレージに関する情報を表示できます。 情報には、データベース名、データベースグループ名、接続URL、ユーザー名、基になるストレージのタイプ、読み取りと書き込みの重み、および接続プール情報が含まれます。

ショーデータソース;
----- ---------------------------- ------------------------------------------------ ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- --------- -----------------------------------------------------------------------------------------------------------
| ID | スキーマ | 名前 | グループ | URL | ユーザー | タイプ | INIT | MIN | MAX | IDLE_TIMEOUT | MAX_WAIT | ACTIVE_COUNT | POOLING_COUNT | ATOM | READ_WEIGHT | WRITE_WEIGHT |
----- ---------------------------- ------------------------------------------------ ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- --------- -----------------------------------------------------------------------------------------------------------
| 0 | seq_test_1487767780814rgkk | rds1ur80kcv8g3t6p3ol_seq_test_wnjg_0000_iiab_1 | jdbc:mysql:// rds1ur80kcv8g3t6p3ol.mysql.rds.aliyuncs.com:3306/seq_test_wnjg_0000 | jnkinsea0 | xdb | 0 | 24 | 72 | 15 | 5000 | 0 | 1 | rds1ur80kcv8g3t6p3ol_seq_test_wnjg_0000_iiab | 10 | 10 |
| 1 | seq_test_1487767780814rgkk | rds1ur80kcv8g3t6p3ol_seq_test_wnjg_0001_iiab_2 | jdbc:mysql:// rds1ur80kcv8g3t6p3ol.mysql.rds.aliyuncs.com:3306/seq_test_wnjg_0001 | jnkinsea0 | xdb | 0 | 24 | 72 | 15 | 5000 | 0 | 1 | rds1ur80kcv8g3t6p3ol_seq_test_wnjg_0001_iiab | 10 | 10 |
| 2 | seq_test_1487767780814rgkk | rds1ur80kcv8g3t6p3ol_seq_test_wnjg_0002_iiab_3 | jdbc:mysql:// rds1ur80kcv8g3t6p3ol.mysql.rds.aliyuncs.com:3306/seq_test_wnjg_0002 | jnkinsea0 | xdb | 0 | 24 | 72 | 15 | 5000 | 0 | 1 | rds1ur80kcv8g3t6p3ol_seq_test_wnjg_0002_iiab | 10 | 10 |
| 3 | seq_test_1487767780814rgkk | rds1ur80kcv8g3t6p3ol_seq_test_wnjg_0003_iiab_4 | jdbc:mysql:// rds1ur80kcv8g3t6p3ol.mysql.rds.aliyuncs.com:3306/seq_test_wnjg_0003 | jnkinsea0 | xdb | 0 | 24 | 72 | 15 | 5000 | 0 | 1 | rds1ur80kcv8g3t6p3ol_seq_test_wnjg_0003_iiab | 10 | 10 |
| 4 | seq_test_1487767780814rgkk | rds1ur80kcv8g3t6p3ol_seq_test_wnjg_0004_iiab_5 | jdbc:mysql:// rds1ur80kcv8g3t6p3ol.mysql.rds.aliyuncs.com:3306/seq_test_wnjg_0004 | jnkinsea0 | xdb | 0 | 24 | 72 | 15 | 5000 | 0 | 1 | rds1ur80kcv8g3t6p3ol_seq_test_wnjg_0004_iiab | 10 | 10 |
| 5 | seq_test_1487767780814rgkk | rds1ur80kcv8g3t6p3ol_seq_test_wnjg_0005_iiab_6 | jdbc:mysql:// rds1ur80kcv8g3t6p3ol.mysql.rds.aliyuncs.com:3306/seq_test_wnjg_0005 | jnkinsea0 | xdb | 0 | 24 | 72 | 15 | 5000 | 0 | 1 | rds1ur80kcv8g3t6p3ol_seq_test_wnjg_0005_iiab | 10 | 10 |
| 6 | seq_test_1487767780814rgkk | rds1ur80kcv8g3t6p3ol_seq_test_wnjg_0006_iiab_7 | jdbc:mysql:// rds1ur80kcv8g3t6p3ol.mysql.rds.aliyuncs.com:3306/seq_test_wnjg_0006 | jnkinsea0 | xdb | 0 | 24 | 72 | 15 | 5000 | 0 | 1 | rds1ur80kcv8g3t6p3ol_seq_test_wnjg_0006_iiab | 10 | 10 |
| 7 | seq_test_1487767780814rgkk | rds1ur80kcv8g3t6p3ol_seq_test_wnjg_0007_iiab_8 | jdbc:mysql:// rds1ur80kcv8g3t6p3ol.mysql.rds.aliyuncs.com:3306/seq_test_wnjg_0007 | jnkinsea0 | xdb | 0 | 24 | 72 | 15 | 5000 | 0 | 1 | rds1ur80kcv8g3t6p3ol_seq_test_wnjg_0007_iiab | 10 | 10 |
----- ---------------------------- ------------------------------------------------ ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- --------- ---------------------------------------------------------------------------------------------------------------

重要な列:

  • SCHEMA: データベースの名前。
  • GROUP: データベースグループの名前。 データベースをグループ化した後、同じデータを1つのグループに格納する複数のデータベースを管理できます。 たとえば、データベースのデータをApsaraDB RDS For MySQLインスタンスにレプリケートした後、グループ内のプライマリデータベースとセカンダリデータベースを管理できます。 データベースグループ化は、読み書き分離とフェイルオーバーに関連する問題の解決に役立ちます。
  • URL: 基盤となるApsaraDB RDS for MySQLデータベースへの接続に使用されるURL。
  • TYPE: 基になるストレージのタイプ。
  • READ_WEIGHT: 読み取り重量。 プライマリApsaraDB RDS for MySQLインスタンスに送信される読み取りリクエストの数を減らしたい場合は、読み書き分離機能を使用して、一部の読み取りリクエストをセカンダリApsaraDB RDS for MySQLインスタンスに配信できます。 PolarDB-Xは、読み取り要求と書き込み要求を自動的に識別します。 次に、プライマリApsaraDB RDS for MySQLインスタンスに書き込みリクエストを送信し、指定された読み取り重みに基づいて各ApsaraDB RDS for MySQLインスタンスに読み取りリクエストを配信します。
  • WRITE_WEIGHT: 書き込み重み。

ショーノード

このSQL文を実行して、読み取り操作の総数、書き込み操作の総数、読み取り重みの合計、書き込み重みの合計など、物理データベースのデータを表示できます。

ショーノード;
+ ----- + -------------------------------------------------- + ------------------- + ------------------ + --------------------- + -------------------- +
| ID | 名前 | MASTER_READ_COUNT | SLAVE_READ_COUNT | MASTER_READ_PERCENT | SLAVE_READ_PERCENT |
+ ----- + -------------------------------------------------- + ------------------- + ------------------ + --------------------- + -------------------- +
| 0 | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_0000_RDS | 12 | 0 | 100% | 0% |
| 1 | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_0001_RDS | 0 | 0 | 0% | 0% |
| 2 | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_0002_RDS | 0 | 0 | 0% | 0% |
| 3 | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_0003_RDS | 0 | 0 | 0% | 0% |
| 4 | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_0004_RDS | 0 | 0 | 0% | 0% |
| 5 | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_0005_RDS | 0 | 0 | 0% | 0% |
| 6 | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_0006_RDS | 0 | 0 | 0% | 0% |
| 7 | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_0007_RDS | 0 | 0 | 0% | 0% |
+ ----- + -------------------------------------------------- + ------------------- + ------------------ + --------------------- + -------------------- +
セットの8行 (0.01秒)
            

重要な列:

  • MASTER_COUNT: プライマリApsaraDB RDS for MySQLインスタンスによって処理された読み取りおよび書き込みクエリの総数。
  • SLAVE_COUNT: セカンダリApsaraDB RDS for MySQLインスタンスによって処理された読み取り専用クエリの総数。
  • MASTER_PERCENT: プライマリApsaraDB RDS for MySQLインスタンスによって処理された読み取りおよび書き込みクエリの総数に対する割合。 この割合はユーザーによって指定されていません。
  • SLAVE_PERCENT: セカンダリApsaraDB RDS for MySQLインスタンスによって処理された読み取りおよび書き込みクエリの総数に対する割合。 この割合はユーザーによって指定されていません。
説明
  • トランザクションの読み取り専用クエリは、プライマリApsaraDB RDS for MySQLインスタンスに送信されます。
  • MASTER_PERCENT列とSLAVE_PERCENT列は履歴データを示します。 読み取り重みと書き込み重みの比率が変化した場合、列の値は最新の比率をすぐには反映しません。 最新の比率は、長い期間が経過した後に表示されます。