Extra:包含不适合在其他列中显示但十分重要的额外信息。这个字段所呈现的信息在后文也会进行详细说明。
5-1-3、MySQL数据库中的分区(partitions)InnoDB引擎和MYISAM引擎都支持分区功能,只是不同的数据引擎实现细节不一样。分区功能是指将某一张数据表中的数据和索引按照一定的规则在磁盘上进行存储。分区功能只限于数据和索引的存储,是否对数据表进行了分区都不会影响索引在内存中的组织方式,并且分区功能的优势在数据量较小的情况下,是不怎么体现出来的。
目前主要的分区方式包括:按照某个字段的值范围进行分区(Range)、按照某一个或者多个字段的Hash Key进行分区(Hash)、按照某个字段的固定值进行分区(List)。并且开发人员还可以同时使用多种分区方式,对数据表进行复合分区。以下是一个分区的示例:
# 为partitionTable数据表建立四个存储分区 CREATE TABLE `partitionTable` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `FieldA` varchar(255) NOT NULL DEFAULT \'\', `FieldB` int(9) NOT NULL DEFAULT \'0\', PRIMARY KEY (`Id`) ) ENGINE=innodb PARTITION BY HASH(Id) PARTITIONS 4;
接着我们可以到MySQL的基础库中观察到partitionTable数据表的数据和索引计数结构:
# 查询partitiontable数据表的存储状态(库名为mysql) # 为节约篇幅,省略了不相关的行和列 select * from innodb_table_stats where table_name like \'partitiontable%\' +---------------------+--------+----------------------+--------------------------+ | table_name | n_rows | clustered_index_size | sum_of_other_index_sizes | +---------------------+--------+----------------------+--------------------------+ | partitiontable