O PolarDB-X oferece três formas de inspecionar tabelas particionadas: consultar metadados de partição, localizar a posição física de cada partição e visualizar estatísticas de distribuição de dados. Escolha o método mais adequado à sua tarefa.
|
Método |
Mais indicado para |
|
|
Inspecionar metadados de partições e subpartições (método, expressão, valores de limite) |
|
|
Identificar qual nó de dados hospeda cada tabela física |
|
|
Verificar percentuais de distribuição de dados e estatísticas de leitura/escrita por partição |
Usar a visualização PARTITIONS
A consulta a INFORMATION_SCHEMA.PARTITIONS retorna os metadados de cada partição e suas subpartições. O PolarDB-X é compatível com a visualização INFORMATION_SCHEMA.PARTITIONS do MySQL.
Como essa visualização possui 26 colunas, use \G para obter uma saída vertical ou selecione apenas as colunas necessárias.
Exemplo: consultar colunas específicas
SELECT
PARTITION_NAME,
SUBPARTITION_NAME,
PARTITION_ORDINAL_POSITION,
SUBPARTITION_ORDINAL_POSITION,
PARTITION_METHOD,
SUBPARTITION_METHOD,
PARTITION_EXPRESSION,
SUBPARTITION_EXPRESSION,
PARTITION_DESCRIPTION,
SUBPARTITION_DESCRIPTION,
DATA_LENGTH
FROM information_schema.partitions
WHERE table_schema = 'autodb2'
AND table_name = 'test_tbl_part_name2'
ORDER BY PARTITION_NAME, SUBPARTITION_NAME;
Saída de exemplo:
+----------------+-------------------+----------------------------+-------------------------------+------------------+---------------------+----------------------+-------------------------+-----------------------+--------------------------+-------------+
| PARTITION_NAME | SUBPARTITION_NAME | PARTITION_ORDINAL_POSITION | SUBPARTITION_ORDINAL_POSITION | PARTITION_METHOD | SUBPARTITION_METHOD | PARTITION_EXPRESSION | SUBPARTITION_EXPRESSION | PARTITION_DESCRIPTION | SUBPARTITION_DESCRIPTION | DATA_LENGTH |
+----------------+-------------------+----------------------------+-------------------------------+------------------+---------------------+----------------------+-------------------------+-----------------------+--------------------------+-------------+
| p1 | p1sp1 | 1 | 1 | KEY | KEY | bid | id | 1 | -4611686018427387899 | 16384 |
| p1 | p1sp2 | 1 | 2 | KEY | KEY | bid | id | 1 | 3 | 16384 |
| p1 | p1sp3 | 1 | 3 | KEY | KEY | bid | id | 1 | 4611686018427387905 | 16384 |
| p1 | p1sp4 | 1 | 4 | KEY | KEY | bid | id | 1 | 9223372036854775807 | 16384 |
| p2 | p2sp1 | 2 | 1 | KEY | KEY | bid | id | 9223372036854775807 | -4611686018427387899 | 16384 |
| p2 | p2sp2 | 2 | 2 | KEY | KEY | bid | id | 9223372036854775807 | 3 | 16384 |
| p2 | p2sp3 | 2 | 3 | KEY | KEY | bid | id | 9223372036854775807 | 4611686018427387905 | 16384 |
| p2 | p2sp4 | 2 | 4 | KEY | KEY | bid | id | 9223372036854775807 | 9223372036854775807 | 16384 |
+----------------+-------------------+----------------------------+-------------------------------+------------------+---------------------+----------------------+-------------------------+-----------------------+--------------------------+-------------+
8 rows in set (0.14 sec)
Para exibir todas as 26 colunas, execute SELECT * FROM information_schema.partitions WHERE ... \G.
Usar a instrução SHOW TOPOLOGY
Execute SHOW TOPOLOGY FROM <table_name> para identificar qual nó de dados hospeda cada tabela física. Esse comando é útil para verificar a distribuição física das partições entre os nós de armazenamento.
Exemplo:
SHOW TOPOLOGY FROM test_tbl_part_name2
ORDER BY PARTITION_NAME, SUBPARTITION_NAME;
Saída de exemplo:
+------+----------------------+--------------------------------+----------------+-------------------+----------------+---------------------------+
| ID | GROUP_NAME | TABLE_NAME | PARTITION_NAME | SUBPARTITION_NAME | PHY_DB_NAME | DN_ID |
+------+----------------------+--------------------------------+----------------+-------------------+----------------+---------------------------+
| 4 | AUTODB2_P00000_GROUP | test_tbl_part_name2_xds7_00000 | p1 | p1sp1 | autodb2_p00000 | polardbx-storage-0-master |
| 0 | AUTODB2_P00001_GROUP | test_tbl_part_name2_xds7_00001 | p1 | p1sp2 | autodb2_p00001 | polardbx-storage-1-master |
| 5 | AUTODB2_P00000_GROUP | test_tbl_part_name2_xds7_00002 | p1 | p1sp3 | autodb2_p00000 | polardbx-storage-0-master |
| 1 | AUTODB2_P00001_GROUP | test_tbl_part_name2_xds7_00003 | p1 | p1sp4 | autodb2_p00001 | polardbx-storage-1-master |
| 6 | AUTODB2_P00000_GROUP | test_tbl_part_name2_xds7_00004 | p2 | p2sp1 | autodb2_p00000 | polardbx-storage-0-master |
| 2 | AUTODB2_P00001_GROUP | test_tbl_part_name2_xds7_00005 | p2 | p2sp2 | autodb2_p00001 | polardbx-storage-1-master |
| 7 | AUTODB2_P00000_GROUP | test_tbl_part_name2_xds7_00006 | p2 | p2sp3 | autodb2_p00000 | polardbx-storage-0-master |
| 3 | AUTODB2_P00001_GROUP | test_tbl_part_name2_xds7_00007 | p2 | p2sp4 | autodb2_p00001 | polardbx-storage-1-master |
+------+----------------------+--------------------------------+----------------+-------------------+----------------+---------------------------+
8 rows in set (0.07 sec)
Campos da saída:
|
Campo |
Descrição |
|
|
Identificador da linha |
|
|
Grupo de shards interno que gerencia a tabela física |
|
|
Nome da tabela física no nó de dados |
|
|
Nome da partição lógica |
|
|
Nome da subpartição lógica |
|
|
Nome do banco de dados físico no nó de dados |
|
|
Identificador do nó de dados (DN) — o nó de armazenamento que contém esta partição |
Usar a visualização TABLE_DETAIL
A consulta a INFORMATION_SCHEMA.TABLE_DETAIL mostra como os dados estão distribuídos entre as partições e o volume de atividade de leitura e escrita em cada uma delas. Essa visualização também expõe metadados específicos do PolarDB-X, como o grupo de tabelas ao qual uma tabela particionada pertence e a tabela de índice global associada.
Exemplo:
SELECT
table_name,
partition_name,
subpartition_name,
percent,
rows_read,
rows_inserted,
rows_updated,
rows_deleted
FROM information_schema.table_detail
WHERE table_schema = 'autodb2'
AND table_name = 'test_tbl_part_name2'
ORDER BY partition_name, subpartition_name;
Saída de exemplo:
+---------------------+----------------+-------------------+--------------------------------------+-----------+---------------+--------------+--------------+
| table_name | partition_name | subpartition_name | percent | rows_read | rows_inserted | rows_updated | rows_deleted |
+---------------------+----------------+-------------------+--------------------------------------+-----------+---------------+--------------+--------------+
| test_tbl_part_name2 | p1 | p1sp1 | 0.00%├-------------------------┤ | 0 | 0 | 0 | 0 |
| test_tbl_part_name2 | p1 | p1sp2 | 0.00%├-------------------------┤ | 0 | 0 | 0 | 0 |
| test_tbl_part_name2 | p1 | p1sp3 | 0.00%├-------------------------┤ | 0 | 0 | 0 | 0 |
| test_tbl_part_name2 | p1 | p1sp4 | 0.00%├-------------------------┤ | 0 | 0 | 0 | 0 |
| test_tbl_part_name2 | p2 | p2sp1 | 0.00%├-------------------------┤ | 0 | 0 | 0 | 0 |
| test_tbl_part_name2 | p2 | p2sp2 | 0.00%├-------------------------┤ | 0 | 0 | 0 | 0 |
| test_tbl_part_name2 | p2 | p2sp3 | 0.00%├-------------------------┤ | 0 | 0 | 0 | 0 |
| test_tbl_part_name2 | p2 | p2sp4 | 0.00%├-------------------------┤ | 0 | 0 | 0 | 0 |
+---------------------+----------------+-------------------+--------------------------------------+-----------+---------------+--------------+--------------+
8 rows in set (0.10 sec)
A coluna percent exibe a proporção dos dados totais da tabela em cada partição na forma de uma barra de progresso. As colunas rows_read, rows_inserted, rows_updated e rows_deleted refletem a atividade de leitura e escrita por partição.