gpt4 book ai didi

Mysql:字段大小/显示宽度会影响索引性能吗?

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

CREATE TABLE student(
`id` int(11) auto_increment PRIMARY KEY
`grade` int(11)
)

假设我想在 grade 列上添加索引。如果它具有较小的显示宽度,例如 int(4),是否会有所不同?

编辑:

  • 这里的性能是指查询时间。

  • 另外,不清楚列显示宽度是否影响索引大小。我们正在考虑一个至少有数百万行的非常大的表。如果答案可以阐明这一点,那就太好了。

最佳答案

首先,显示在任何情况下都没有区别——它只是关于字段在查询响应中的表示方式。 int 仍然是 int 使用 4 个字节,bigintbigint 使用 8 个字节等...

您从哪个方面考虑“性能”?总体请求时间,保持数据和索引加载或缓存所需的内存使用?磁盘空间?

我猜你的意思是,它会影响查询响应的速度吗。

然而,这个问题非常广泛,真正的答案是,这取决于。你的系统是64位还是32位的?我们在谈论多少记录?该字段是一个更大的复合索引的一部分,但仍然是其中的一小部分?

(注意:需要检查此声明,例如 CHAR 是否只是针对索引进行哈希处理)从 a 或 CHAR(4) 到 CHAR(32) 并确保您可能会发现一些不可忽略的性能损失,但是这不是因为复杂性,而是处理这些问题的操作系统和架构的额外开销。

但是,我要大胆地建议,除非改变类型(int 到 varchar)这可能会改变索引方法或索引存储大小的巨大变化,否则您可能不会 '看看有什么不同。我怀疑在不同的整数类型之间您是否能够轻松地显示一致的减速。

关于Mysql:字段大小/显示宽度会影响索引性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41684932/

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