2013-01-22 36 views
0

我试图提高我的一个客户的数据库性能。 很多表有bigint(250)。我读过MySql文档中的bigint是最大8位/字节。我不明白为什么有可能有一个bigint(250),而最大值是8?mysql bigint(250)是否矫枉过正/最大字段大小

此外,对于INT字段,某些字段具有INT(25),但INT最大为8位/字节。

我看到这个正确与否吗?

什么是MySql的尺寸大于字段大小?

+3

我相信MySql中的大小字段与小数位数相关,而不是任何对程序员来说合乎逻辑的意义。 – paddy

+3

列中的数字代表显示尺寸。如果您有INT(1),它仍然是4个字节,但即使使用内部全部4个字节,您也只能看到1个数字。显然,有人设计你的数据库,却不知道括号中的数字是什么。拥有这么大的数字并不会让人伤心,但是你可以自由地忽略它们。 –

回答

1

当处理诸如INT,BIGINT等类型时,括号内的数字仅用于显示宽度,例如, VARCHAR,它也定义了存储大小。

如果显示宽度如此之大,您可以放心地假设设计者只是有一点疯狂,因为除非宽度小于最大值,否则基本上是无用的。

确定该字段是否被签名将会更加重要。将其定义为BIGINT UNSIGNED可有效地将字段的范围扩大到不应为负数的字段,例如标识符。

+1

“你可以放心地假设设计师只是有一点疯狂”这让我笑了起来 – pocesar

相关问题