gpt4 book ai didi

mysql - 如何找出mysql中索引的大小(包括主键)

转载 作者:行者123 更新时间:2023-11-29 02:01:11 26 4
gpt4 key购买 nike

2 个常见答案是使用 show_table_statusINFORMATION_SCHEMA.TABLES

不过貌似两者都不计算主键的大小。

我的表有数百万条记录,主键没有其他索引,上面提到的两种方法都显示该表的 Index_length: 0。表是 INNODB。

最佳答案

您的主键就是您的表。在 InnoDB 中,主键包含实际数据,因此如果主键包含数据,它就是表。

想一想。您在 InnoDB 表的聚簇索引和二级索引上获得了两种不同类型的索引。不同之处在于聚簇索引包含数据,二级索引包含索引列和指向数据的指针。因此,二级索引不包含数据,而是包含数据在 CLUSTERED 索引中的位置。

通常主键是聚集索引。既存储表及其所有值,又存储聚簇索引及其所有值,效率非常低。这实际上会使表的大小增加一倍。

因此,当您在 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

在这些链接中,他们更详细地解释了我上面所说的一切。简单地说,您已经拥有主键索引的大小,因为它是您的表的大小。

希望对您有所帮助。

关于mysql - 如何找出mysql中索引的大小(包括主键),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14375289/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com