The PARTITIONS table provides
information about table partitions. See
Chapter 18, Partitioning, for more information about
partitioning tables.
INFORMATION_SCHEMA Name | SHOW Name | Remarks |
|---|---|---|
TABLE_CATALOG | MySQL extension | |
TABLE_SCHEMA | MySQL extension | |
TABLE_NAME | MySQL extension | |
PARTITION_NAME | MySQL extension | |
SUBPARTITION_NAME | MySQL extension | |
PARTITION_ORDINAL_POSITION | MySQL extension | |
SUBPARTITION_ORDINAL_POSITION | MySQL extension | |
PARTITION_METHOD | MySQL extension | |
SUBPARTITION_METHOD | MySQL extension | |
PARTITION_EXPRESSION | MySQL extension | |
SUBPARTITION_EXPRESSION | MySQL extension | |
PARTITION_DESCRIPTION | MySQL extension | |
TABLE_ROWS | MySQL extension | |
AVG_ROW_LENGTH | MySQL extension | |
DATA_LENGTH | MySQL extension | |
MAX_DATA_LENGTH | MySQL extension | |
INDEX_LENGTH | MySQL extension | |
DATA_FREE | MySQL extension | |
CREATE_TIME | MySQL extension | |
UPDATE_TIME | MySQL extension | |
CHECK_TIME | MySQL extension | |
CHECKSUM | MySQL extension | |
PARTITION_COMMENT | MySQL extension | |
NODEGROUP | MySQL extension | |
TABLESPACE_NAME | MySQL extension |
Notes:
The PARTITIONS table is a
nonstandard table. It was added in MySQL 5.1.6.
Each record in this table corresponds to an individual partition or subpartition of a partitioned table.
TABLE_CATALOG: This column is always
NULL.
TABLE_SCHEMA: This column contains the name
of the database to which the table belongs.
TABLE_NAME: This column contains the name
of the table containing the partition.
PARTITION_NAME: The name of the partition.
SUBPARTITION_NAME: If the
PARTITIONS table record
represents a subpartition, then this column contains the name
of subpartition; otherwise it is NULL.
PARTITION_ORDINAL_POSITION: All partitions
are indexed in the same order as they are defined, with
1 being the number assigned to the first
partition. The indexing can change as partitions are added,
dropped, and reorganized; the number shown is this column
reflects the current order, taking into account any indexing
changes.
SUBPARTITION_ORDINAL_POSITION:
Subpartitions within a given partition are also indexed and
reindexed in the same manner as partitions are indexed within
a table.
PARTITION_METHOD: One of the values
RANGE, LIST,
HASH, LINEAR HASH,
KEY, or LINEAR KEY; that
is, one of the available partitioning types as discussed in
Section 18.2, “Partitioning Types”.
SUBPARTITION_METHOD: One of the values
HASH, LINEAR HASH,
KEY, or LINEAR KEY; that
is, one of the available subpartitioning types as discussed in
Section 18.2.5, “Subpartitioning”.
PARTITION_EXPRESSION: This is the
expression for the partitioning function used in the
CREATE TABLE or
ALTER TABLE statement that
created the table's current partitioning scheme.
For example, consider a partitioned table created in the
test database using this statement:
CREATE TABLE tp (
c1 INT,
c2 INT,
c3 VARCHAR(25)
)
PARTITION BY HASH(c1 + c2)
PARTITIONS 4;
The PARTITION_EXPRESSION column in a
PARTITIONS table record for a partition from this table
displays c1 + c2, as shown here:
mysql>SELECT DISTINCT PARTITION_EXPRESSION>FROM INFORMATION_SCHEMA.PARTITIONS>WHERE TABLE_NAME='tp' AND TABLE_SCHEMA='test';+----------------------+ | PARTITION_EXPRESSION | +----------------------+ | c1 + c2 | +----------------------+ 1 row in set (0.09 sec)
SUBPARTITION_EXPRESSION: This works in the
same fashion for the subpartitioning expression that defines
the subpartitioning for a table as
PARTITION_EXPRESSION does for the
partitioning expression used to define a table's partitioning.
If the table has no subpartitions, then this column is
NULL.
PARTITION_DESCRIPTION: This column is used
for RANGE and LIST partitions. For a RANGE
partition, it contains the value set in the partition's
VALUES LESS THAN clause, which can be
either an integer or MAXVALUE. For a
LIST partition, this column contains the
values defined in the partition's VALUES IN
clause, which is a comma-separated list of integer values.
For partitions whose PARTITION_METHOD is
other than RANGE or
LIST, this column is always
NULL.
TABLE_ROWS: The number of table rows in the
partition.
For partitioned InnoDB tables,
the row count given in the TABLE_ROWS
column is only an estimated value used in SQL optimization,
and may not always be exact.
Beginning with MySQL Cluster NDB 7.0.22 and MySQL Cluster NDB
7.1.11, TABLE_ROWS shows correct
information for NDB tables.
Previously, for partitions of NDB
tables, the TABLE_ROWS column value was
always 0.
For NDB tables, you can also
obtain this information using the ndb_desc
utility.
AVG_ROW_LENGTH: The average length of the
rows stored in this partition or subpartition, in bytes.
This is the same as DATA_LENGTH divided by
TABLE_ROWS.
Beginning with MySQL Cluster NDB 7.0.22 and MySQL Cluster NDB
7.1.11, AVG_ROW_LENGTH includes statistics
for partitions of NDB tables,
whether the tables use implicit or explicit partitioning.
(Previously the value of this column was always 0 for
partitions of NDB tables.)
You can also obtain equivalent information using the ndb_desc utility.
DATA_LENGTH: The total length of all rows
stored in this partition or subpartition, in bytes—that
is, the total number of bytes stored in the partition or
subpartition.
Beginning with MySQL Cluster NDB 7.0.22 and MySQL Cluster NDB
7.1.11, DATA_LENGTH shows correct
information for in-memory data in
NDB tables. Previously, for
partitions of NDB tables, the
DATA_LENGTH column value was always 0.
For NDB tables, you can also
obtain this information using the ndb_desc
utility.
MAX_DATA_LENGTH: The maximum number of
bytes that can be stored in this partition or subpartition.
Beginning with MySQL Cluster NDB 7.0.22 and MySQL Cluster NDB
7.1.11, MAX_DATA_LENGTH shows the space
allocated for the disk part of a MySQL Cluster Disk Data table
or fragment. (Previously, for partitions of
NDB tables, the
MAX_DATA_LENGTH column value was always
NULL.)
For NDB tables, you can also
obtain this information using the ndb_desc
utility.
INDEX_LENGTH: The length of the index file
for this partition or subpartition, in bytes.
For partitions of NDB tables,
whether the tables use implicit or explicit partitioning, the
INDEX_LENGTH column value is always 0.
However, you can obtain equivalent information using the
ndb_desc utility.
DATA_FREE: The number of bytes allocated to
the partition or subpartition but not used.
For MySQL Cluster Disk Data tables, beginning with MySQL
Cluster NDB 7.0.22 and MySQL Cluster NDB 7.1.11,
DATA_FREE shows the space allocated on disk
for, but not used by, a Disk Data table or fragment on disk.
(Previously, for partitions of
NDB tables, the value of this
column was always 0.)
For NDB tables, you can also
obtain this information using the ndb_desc
utility.
CREATE_TIME: The time of the partition's or
subpartition's creation.
UPDATE_TIME: The time that the partition or
subpartition was last modified.
CHECK_TIME: The last time that the table to
which this partition or subpartition belongs was checked.
Some storage engines do not update this time; for tables
using these storage engines, this value is always
NULL.
CHECKSUM: The checksum value, if any;
otherwise, this column is NULL.
PARTITION_COMMENT: This column contains the
text of any comment made for the partition.
In MySQL 5.1, the display width of this column is 80 characters, and partition comments which exceed this length are truncated to fit. This issue is fixed in MySQL 5.6. (Bug #11748924, Bug #37728)
The default value for this column is an empty string.
NODEGROUP: This is the nodegroup to which
the partition belongs. This is relevant only to MySQL Cluster
tables; otherwise the value of this column is always
0.
TABLESPACE_NAME: This column contains the
name of the tablespace to which the partition belongs.
Currently, the value of this column is always
DEFAULT.
If any partitioned tables created in a MySQL version prior
to MySQL 5.1.6 are present following an upgrade to MySQL
5.1.6 or later, it is not possible to
SELECT from,
SHOW, or
DESCRIBE the
PARTITIONS table. See the
Release
Notes for MySQL 5.1.6 before
upgrading from MySQL 5.1.5 or earlier to MySQL 5.1.6 or
later.
A nonpartitioned table has one record in
INFORMATION_SCHEMA.PARTITIONS;
however, the values of the PARTITION_NAME,
SUBPARTITION_NAME,
PARTITION_ORDINAL_POSITION,
SUBPARTITION_ORDINAL_POSITION,
PARTITION_METHOD,
SUBPARTITION_METHOD,
PARTITION_EXPRESSION,
SUBPARTITION_EXPRESSION, and
PARTITION_DESCRIPTION columns are all
NULL. (The
PARTITION_COMMENT column in this case is
blank.)
In MySQL 5.1, there is also only one record in
the PARTITIONS table for a table
using the NDBCLUSTER storage
engine. The same columns are also NULL (or
empty) as for a nonpartitioned table.

User Comments
Add your own comment.