【MySQL】パーティションを確認する方法


ここでは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) */ |