gpt4 book ai didi

mysql - 如果 MySQL 的 InnoDB PRIMARY 列被自动索引,为什么索引长度报告为零?

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

这是我的 MySQL InnoDB 数据库。请注意表 days 如何将 index length 报告为 0

enter image description here

这是表数据、方案和索引:

enter image description here

如您所见,该表定义了一个 PRIMARY 列。这应该被编入索引,对吧?所以应该有一定的索引长度。

但是,当我实际添加 INDEX 列时,例如:

enter image description here

表格突然报出某个索引长度,可以看到这里:

enter image description here

所以我想知道:这是怎么回事?索引长度到底是多少?如果它们已编入索引,为什么不考虑主键?

最佳答案

InnoDB 将表行存储在 clustered index 中基于主键。所以,data_length显示的是主键占用的页面大小。

index_length 显示二级(非一级)索引占用的页面大小。


回复你的评论:

是的,在这个表中没有必要在主键的第一列上创建额外的索引。 MySQL 不会阻止您创建这样一个多余的索引,因为它相信您知道自己在做什么。 :-)

您可以使用类似 pt-duplicate-key-checker 的工具分析您的元数据以查找重复索引。在一个这样的案例中,我发现由于重复索引导致 400GB 的空间浪费!

关于mysql - 如果 MySQL 的 InnoDB PRIMARY 列被自动索引,为什么索引长度报告为零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23203445/

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