MySQL是一種廣泛使用的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),支持分區(qū)表。分區(qū)表因?yàn)閿?shù)據(jù)分布在不同的分區(qū)中,可以增加查詢的效率。但是我們?nèi)绾尾榭匆粋€(gè)表是否為分區(qū)表,并且查看這個(gè)表的數(shù)據(jù)都存在哪些分區(qū)呢?
SHOW CREATE TABLE table_name;
我們可以使用上面這個(gè)命令來(lái)查看表的創(chuàng)建信息。如果表是分區(qū)表,那么創(chuàng)建信息中會(huì)包含如下語(yǔ)句:
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為用于做區(qū)分的列名,p0、p1、p2為分區(qū)的名稱,MAXVALUE表示最大值。
如果表不是分區(qū)表,則創(chuàng)建信息中不會(huì)包含任何分區(qū)相關(guān)的語(yǔ)句。
SELECT PARTITION_NAME, PARTITION_ORDINAL_POSITION FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA = 'database_name' AND TABLE_NAME = 'table_name';
使用上面這個(gè)命令來(lái)查看一個(gè)分區(qū)表中的所有分區(qū)的信息。其中,PARTITION_NAME為分區(qū)名稱,PARTITION_ORDINAL_POSITION為分區(qū)的位置。
使用上述方式,我們可以輕松地查看一個(gè)MySQL表是否分區(qū),以及該分區(qū)表的數(shù)據(jù)都存儲(chǔ)在哪些分區(qū)中。