InnoDB索引显示具有主键的表的“零”大小

时间:2013-10-09 07:11:56

标签: mysql innodb

我有一个带有主键的InnoDB表,如下所示:

show create table com_zone;
 +----------+----------------------------------------------------------------------------------------------------------------------------+
| Table    | Create Table                                                                                                               |
+----------+----------------------------------------------------------------------------------------------------------------------------+
| com_zone | CREATE TABLE `com_zone` (
 `domain` varchar(70) NOT NULL,
  PRIMARY KEY (`domain`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+----------+----------------------------------------------------------------------------------------------------------------------------+

并且它有大量数据(大约100万行),但是,当我检查索引大小时,它显示为零:

SELECT index_length/POWER(1024,1) NDXSIZE FROM INFORMATION_SCHEMA.TABLES WHERE table_schema='zone_import' AND table_name='com_zone';
+---------+
| NDXSIZE |
+---------+
|       0 |
+---------+

那么,为什么它具有PK索引时会显示'0'索引大小?

2 个答案:

答案 0 :(得分:0)

是压缩表吗?我目前正在显示大小为0的索引 - 也许是因为数据已经在数据中,它们会完全压缩?没有完全理解。

同时尝试查询没有“POWER(1024,1)”,只是为了看看它是否存在一些问题,当它除以一个或者某个东西时,它将整数舍入为整数...

答案 1 :(得分:0)

" 0"是正确的。在InnoDB中,PRIMARY KEY与数据聚集在一起。因此,该索引不会消耗额外的空间。任何辅助索引都会在index_length中计算。