1

我有一个带有主键的 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' 索引大小?

4

2 回答 2

0

是压缩表吗?我的当前也显示大小为 0 的索引 - 可能是因为数字已经在数据中,所以它们完全压缩?完全没有道理。

还可以尝试不带“POWER(1024,1)”的查询,只是为了看看它是否存在一些问题,当它小于一时将除法四舍五入为整数......

于 2016-08-24T05:28:07.267 回答
0

“0”是正确的。在 InnoDB 中,PRIMARY KEY“与数据聚集在一起。因此,该索引不会消耗额外的空间。任何二级索引都将在index_length.

于 2016-09-12T19:10:06.757 回答