0

我目前在我的 MySQL 数据库中有几个表,我在其中声明该id字段为类型SMALLINT(6)(这是正确的,因为SMALLINT只有 65535 [长度为 5])。我在这里阅读了整数类型,当它UNSIGNED的范围从正数增加到 65535 时。如果我专门将id字段的属性更改为,这将如何影响我的数据库UNSIGNEDSMALLINT另外,从到有问题MEDIUMINT吗?

我的数据库类型是MyISAM

4

2 回答 2

1

您应该可以从 切换SMALLINTMEDIUMINT- 不会丢失任何数据。

MySQL 中的普通整数可以是下限和上限之间的任何数字。对于有符号整数,下限为负数,上限为正数。带符号的 ASMALLINT可以介于 -32768 和 32767 之间。但是,无符号整数只是正数。下限为零,上限为 65535。

不过,我通常INT用于 ID。我宁愿对 ID 字段设置一个上限,使其永远不应该达到。

于 2011-03-13T09:34:58.437 回答
0

使用UNSIGNED类型的主要问题是,如果您执行任何导致负数的算术运算,您最终会得到一个大数。但是,对于 ID,这不太可能成为问题,我经常使用它们来减少内存使用量。

我想不出使用SMALLINTthen 更改为的任何问题,MEDIUMINT因为扩大数据类型通常不会导致问题。

于 2011-03-13T09:37:15.743 回答