MySQL是一种广泛使用的关系型数据库管理系统,支持分区表。分区表因为数据分布在不同的分区中,可以增加查询的效率。但是我们如何查看一个表是否为分区表,并且查看这个表的数据都存在哪些分区呢?
SHOW CREATE TABLE table_name;
我们可以使用上面这个命令来查看表的创建信息。如果表是分区表,那么创建信息中会包含如下语句:
PARTITION BY RANGE (partition_column) (PARTITION p0 VALUES LESS THAN (100),PARTITION p1 VALUES LESS THAN (200),PARTITION p2 VALUES LESS THAN (MAXVALUE))
其中,partition_column为用于做区分的列名,p0、p1、p2为分区的名称,MAXVALUE表示最大值。
如果表不是分区表,则创建信息中不会包含任何分区相关的语句。
SELECT PARTITION_NAME, PARTITION_ORDINAL_POSITIONFROM INFORMATION_SCHEMA.PARTITIONSWHERE TABLE_SCHEMA = 'database_name' AND TABLE_NAME = 'table_name';
使用上面这个命令来查看一个分区表中的所有分区的信息。其中,PARTITION_NAME为分区名称,PARTITION_ORDINAL_POSITION为分区的位置。
使用上述方式,我们可以轻松地查看一个MySQL表是否分区,以及该分区表的数据都存储在哪些分区中。