带有SMALLINT id字段的MySQL数据库表

我目前在我的MySQL数据库中有几个表,我声明
id
字段是
SMALLINT(6)
类型(这是正确的,因为
SMALLINT
只有65535 [长度为5])。我在这里读过整数类型,当它是
UNSIGNED
时,范围从正增加到65535.如果我特意将
id
字段的属性改为
UNSIGNED
,这将如何影响我的数据库?从
SMALLINT
MEDIUMINT
有问题吗? 我的数据库类型是MyISAM。     
已邀请:
您应该可以从
SMALLINT
切换到
MEDIUMINT
- 不会丢失任何数据。 MySQL中的正常整数可以是下限和上限之间的任何数字。对于有符号整数,下限为负数,上限为正数。 A
SMALLINT
,有符号,可以在-32768和32767之间。但是,无符号整数只是正数。下限为零,上限为65535。 不过,我通常使用
INT
作为身份证。我宁愿将ID字段的上限设置得如此之高,以至于永远不会达到它。     
使用
UNSIGNED
类型的主要问题是,如果你做任何导致负数的算术,你最终会得到一个大数字。但是,对于ID而言,这不太可能是一个问题,我经常使用它们来减少内存使用量。 我想不出使用
SMALLINT
然后更改为
MEDIUMINT
的任何问题,因为扩大数据类型通常不会导致问题。     

要回复问题请先登录注册