このトピックでは、ルールとトポロジのクエリ文について説明します。
SHOW RULE [タブラメから]
説明:
SHOW RULE
: データベース内の各論理テーブルのシャーディングの詳細を照会します。SHOW RULE FROM tablename
: データベース内の指定された論理テーブルのシャーディングの詳細を照会します。
mysql> 表示ルール;
+ ------ ------------- ----------------- ------------------ + --------------------- + --------------------- + --------------------- + --------------------- +
| ID | テーブル名 | 放送 | DB_PARTITION_KEY | DB_PARTITION_POLICY | DB_PARTITION_COUNT | TB_PARTITION_KEY | TB_PARTITION_POLICY | TB_PARTITION_COUNT |
+ ------ ------------- ----------------- ------------------ + --------------------- + --------------------- + --------------------- + --------------------- +
| 0 | dept_manager | 0 | | NULL | 1 | | NULL | 1 |
| 1 | emp | 0 | emp_no | ハッシュ | 8 | id | ハッシュ | 2 |
| 2 | 例 | 0 | shard_key | ハッシュ | 8 | | NULL | 1 |
+ ------ ------------- ----------------- ------------------ + --------------------- + --------------------- + --------------------- + --------------------- +
セットの3列 (0.01秒)
重要な列:
- 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ステートメントよりも詳細な情報を照会します。
mysql> フルルールを表示します。------ ------------ --------------------------------------- ----------------------- ---------------------------------------------------- ---------------------------------------------------- ----------------- +
| 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 | dept_manager | 0 | NULL | 0 | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_0000_RDS | NULL | dept_manager | NULL | NULL | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_0000_RDS |
| 1 | emp | 0 | NULL | 1 | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_{0000}_RDS | (((#emp_no、1,8#).longValue().abs() % 8) | emp_{0} | (((#id、1,2#).longValue()) ().abs() % 2) | emp_no id | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_0000_RDS | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_0000_RDS
| 2 | example | 0 | NULL | 1 | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_{0000}_RDS | (((#shard_key、1,8#).longValue().abs() % 8).intdiv(1) | example | NULL | shard_key | SEQ_TEST_1487767780814RGKKSEQ_TEST_WNJG_0000_RDS |
------ ------------ --------------------------------------- ----------------------- ---------------------------------------------------- ---------------------------------------------------- ----------------- +
セットの3列 (0.01秒)
重要な列:
- 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文を実行して、指定した論理テーブルのトポロジを表示できます。 この情報には、論理テーブル内のデータがパーティション分割されるデータベースシャードと、各データベースシャード内のテーブルシャードが含まれます。
mysql> empからトポロジを表示します。------ -------------------------------------------------- -------------
| 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 |
------ -------------------------------------------------- -------------
セットの16行 (0.01秒)
tablenameからの会合を示す
このSQL文を実行して、コンマ (,) で区切られた一連のデータベースとテーブルシャードキーを表示できます。 2つの値が返された場合、データベースシャーディングとテーブルシャーディングの両方が実行されます。 最初の値はデータベースシャードキーで、2番目の値はテーブルシャードキーです。 値が1つだけ返された場合、データベースシャーディングのみが実行されます。 この値はデータベースシャードキーです。
mysql> empからパーティションを表示します。+ ----------
| キー |
+ ----------
| emp_no,id |
+ ----------
セットの1列 (0.00秒)
放送番組
このSQL文を実行して、ブロードキャストテーブルを表示できます。
mysql> ショー放送;
------ -------------
| ID | タブレット名 |
------ -------------
| 0 | brd2 |
| 1 | brd_tbl |
------ -------------
セットの2列 (0.01秒)
データソースを表示する
このSQL文を実行して、基になるストレージに関する情報を表示できます。 情報には、データベース名、データベースグループ名、接続URL、ユーザー名、ストレージタイプ、読み取りおよび書き込み重み、および接続プール情報が含まれます。
mysql> データソースを表示します。----- ---------------------------- ------------------------------------------------ ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- --------- -----------------------------------------------------------------------------------------------------------
| 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: // rds1ur80kcv8g3t6p3ol.mysql.rds.aliyuncs.com:3306/seq_test_wnjg_0000 | jnkinsea0 | mysql | 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 | mysql | 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 | mysql | 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 | mysql | 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 | mysql | 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 | mysql | 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 | mysql | 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 | mysql | 0 | 24 | 72 | 15 | 5000 | 0 | 1 | rds1ur80kcv8g3t6p3ol_seq_test_wnjg_0007_iiab | 10 | 10 |
----- ---------------------------- ------------------------------------------------ ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- --------- -----------------------------------------------------------------------------------------------------------
セットの8行 (0.01秒)
重要な列:
- SCHEMA: データベース名を示します。
- GROUP: データベースグループ名を示します。 データベースをグループ化した後、同じデータを1つのグループに格納する複数のデータベースを管理できます。 たとえば、データベースのデータをApsaraDB RDS For MySQLインスタンスにレプリケートした後、グループ内のプライマリデータベースとセカンダリデータベースを管理できます。 データベースグループ化により、読み書き分離とプライマリ /セカンダリの切り替えが可能になります。
- URL: 基盤となるApsaraDB RDS for MySQLデータベースへの接続に使用されるURLを示します。
- TYPE: 基になるストレージタイプを示します。 ApsaraDB RDS for MySQLのみがサポートされています。
- READ_WEIGHT: 読み取り重量を示します。 プライマリApsaraDB RDS for MySQLインスタンスへの読み取りリクエストの数を減らしたい場合は、読み書き分離機能を使用して、一部の読み取りリクエストをセカンダリApsaraDB RDS for MySQLインスタンスに配信できます。 これにより、プライマリApsaraDB RDS for MySQLインスタンスからの読み取り要求がオフロードされます。 PolarDB-X 1.0は、読み取り要求と書き込み要求を自動的に識別します。 次に、プライマリApsaraDB RDS for MySQLインスタンスに書き込みリクエストを送信し、指定された読み取り重みに基づいて各ApsaraDB RDS for MySQLインスタンスに読み取りリクエストを配信します。
- WRITE_WEIGHT: 書き込み重みを示します。
ショーノード
このSQL文を実行して、累積読み取り操作数、累積書き込み操作数、累積読み取り重み、累積書き込み重みなどの物理データベースのデータを表示できます。
mysql> show node;
+ ----- + -------------------------------------------------- + ------------------- + ------------------ + --------------------- + -------------------- +
| 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
列は、累積履歴データを示す。 読み取り重みと書き込み重みの比率が変化した場合、これらのパラメーター値は最新の比率をすぐには反映しません。 最新の比率は、長期間後に表示されます。