2个常见的答案是使用显示表状态 and INFORMATION_SCHEMA.TABLES
但似乎,他们都没有计算主键的大小。
我有包含数百万条记录的表,带有主键且没有其他索引,上面提到的两种方法都显示Index_length: 0
对于那些桌子。表是 INNODB。
您的主键是您的表。在 InnoDB 中,主键包含实际数据,因此如果主键包含数据,那么它就是表。
想一想。 InnoDB 表上有两种不同类型的索引:聚集索引和二级索引。区别在于聚集索引包含数据,而辅助索引包含索引列和指向数据的指针。因此,二级索引不包含数据,而是包含数据在聚集索引中的位置。
通常主键是聚集索引。同时存储表及其所有值,然后存储聚集索引及其所有值,效率非常低。这实际上会使表的大小加倍。
因此,当 InnoDB 上有主键时,表大小就是主键的大小。在某些数据库系统中,您可以将二级索引作为主键,将单独的索引作为聚集键,但 InnoDB 不允许这样做。
请阅读以下链接了解更多详细信息:
http://dev.mysql.com/doc/refman/5.0/en/innodb-table-and-index.html
http://dev.mysql.com/doc/refman/5.0/en/innodb-index-types.html
在这些链接中,他们更详细地解释了我上面所说的一切。简而言之,您已经有了主键索引的大小,因为它就是表的大小。
希望有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)