ここではMySQLで、テーブルのパーティションを確認する方法を紹介しています。
パーティションを確認する方法
INFORMATION_SCHEMA.PARTITIONS
パーティションの情報はINFORMATION_SCHEMA.PARTITIONSで確認することが出来ます。
SELECT
TABLE_SCHEMA
,PARTITION_NAME
,PARTITION_ORDINAL_POSITION
,TABLE_ROWS
FROM
INFORMATION_SCHEMA.PARTITIONS
WHERE
TABLE_NAME = 'テーブル名';
実際に実行すると次のような結果が返ってきます。
mysql> SELECT TABLE_SCHEMA,PARTITION_NAME,PARTITION_ORDINAL_POSITION,TABLE_ROWS FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME = 'tab2';
+--------------+----------------+----------------------------+------------+
| TABLE_SCHEMA | PARTITION_NAME | PARTITION_ORDINAL_POSITION | TABLE_ROWS |
+--------------+----------------+----------------------------+------------+
| db1 | p201001 | 1 | 0 |
| db1 | p201002 | 2 | 0 |
| db1 | p201003 | 3 | 0 |
+--------------+----------------+----------------------------+------------+
3 rows in set (0.01 sec)
SHOW CREATE TABLE
SHOW CREATE TABLE文でもパーティション情報を確認することが出来ます。
SHOW CREATE TABLE テーブル名;
実行した結果(一部抜粋)は次のような形です。
CREATE TABLE `tab2` (
`col1` varchar(10) NOT NULL,
`col2` int(11) NOT NULL,
PRIMARY KEY (`col1`,`col2`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
/*!50100 PARTITION BY RANGE (`col2`)
(PARTITION p201001 VALUES LESS THAN (201001) ENGINE = InnoDB,
PARTITION p201002 VALUES LESS THAN (201002) ENGINE = InnoDB,
PARTITION p201003 VALUES LESS THAN (201003) ENGINE = InnoDB) */ |