![]() |
1
57
根据 section 10.2 MySQL 5.1手册:
因此,只有当你担心上限时,才需要使用UNSIGNED。此外,添加UNSIGNED不会影响列的大小,只会影响数字的大小 represented . |
![]() |
2
24
这并不重要,除非你试图从价值观中获得最大的回报,并且不需要负值。 例如,假设您想存储0-255。 您可以使用tinyint,但前提是您将其用作unsigned。 我见过的很多数据库,人们不会费心进行这样的优化,最终会得到一些相当大的表,因为他们一直在使用INT。 尽管如此,如果你谈论的是int与unsigned int,则根本没有性能影响或空间效应。 从标准的角度来看,我总是使用unsigned,只有当我知道我需要负值时才使用signed。 |
![]() |
3
19
说到性能或存储,这绝对是一回事。 作为一般规则,请使用更适合您的值:如果您只需要正值,请将值存储为UNSIGNED,否则,将其设置为默认[SIGNED]。 当为PRIMARY AUTOINCREMENT列设置SIGNED值时,会出现一个问题:自动生成的数字的计数从1开始(不是最小的负数),可能的值将提前结束,因为您将只使用一半的值。因此,在这种情况下(PRIMARY+AUTOINCREMENT列),最好将其存储为UNSIGNED。 |
![]() |
4
10
当列仅包含正数时,使用unsigned。 它不会影响列上的任何I/O性能,因为它仍然会占用完全相同的空间。 |
![]() |
5
4
这将提高性能,假设你想搜索数量<50度。 无签名: 流程,由于数量字段是一个int,并且您有该字段的索引,MySQL将定义范围为-2147483648到500,并将根据此范围获得结果。 未签名: 流程,由于数量字段是一个无符号的int,并且你有这个字段的索引,MySQL会将范围定义为0到500,并根据这个范围得到结果。 |
![]() |
6
3
在这里你可以看到 MySQL documentation 对于有符号与无符号的INTs范围。你很快就会注意到,未点火INT的下限始终为0,因此它永远不会为负。
|
![]() |
7
1
警告 ,未签名Int(UINT)和实体框架或ADO存在问题。网。它可能涉及MySqlConnector版本6的集成问题。
根据我的经验,
其他问题: |
![]() |
developer · 带外键的SQL表设计 8 月前 |
![]() |
relatively_random · 确保两个表之间一致的共同参考 10 月前 |
![]() |
b126 · 在两种不同的Oracle模式上执行相同查询的速度差异很大 1 年前 |
![]() |
robertspierre · 在多对多关系中自动删除未引用的行 1 年前 |
![]() |
Michael Samuel · MYSQL在以下情况下自动创建索引 7 年前 |