gpt4 book ai didi

mysql - MySQL中的十进制VS整数?

转载 作者:IT王子 更新时间:2023-10-29 00:31:22 25 4
gpt4 key购买 nike

decimal(10,0) unsigned 类型和 int(10) unsigned 类型之间是否存在任何性能差异?

最佳答案

这可能取决于您使用的 MySQL 版本。见 here .

在 MySQL 5.0.3 之前,DECIMAL 类型存储为字符串,通常速度较慢。但是,由于 MySQL 5.0.3 的 DECIMAL 类型是以二进制格式存储的,所以你的 DECIMAL 的大小在上面,性能上可能没有太大差异。

主要的性能问题是不同类型占用的空间量(DECIMAL 速度较慢)。对于 MySQL 5.0.3+,这似乎不是一个问题,但是如果您将作为查询的一部分对值执行数字计算,则可能存在一些性能差异。这可能值得测试,因为我可以看到文档中没有任何指示。

编辑:关于 int(10) unsigned,我认为这只是一个 4 字节的 int。然而,它的最大值为 4294967295,它严格来说不提供与 DECIMAL(10,0) unsigned 相同的数字范围。

正如@Unreason 指出的那样,您需要使用 bigint 来覆盖 10 位数字的全部范围,从而将大小增加到 8 个字节。

一个常见的错误是,在 MySQL 中指定数字列类型时,人们通常认为括号中的数字会影响他们可以存储的数字的大小。它没有。数字范围纯粹基于列类型以及它是有符号还是无符号。括号中的数字用于在结果中显示,对存储在列中的值没有影响。除非您在列上也指定 ZEROFILL 选项,否则它也不会影响结果的显示。

关于mysql - MySQL中的十进制VS整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2682115/

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