Mysql 我应该在什么时候为列使用UNSIGNED属性?
根据文档,Mysql 我应该在什么时候为列使用UNSIGNED属性?,mysql,sql,unsigned-integer,Mysql,Sql,Unsigned Integer,根据文档,UNSIGNED列不接受负数。那么,这是否意味着我应该为始终包含正值或空值的每一列使用UNSIGNED属性 假设此表结构: // vote +----+---------+---------+-------+------------+----------+ | id | id_post | id_user | value | code_table | time | +----+---------+---------+-------+------------+----------
UNSIGNED
列不接受负数。那么,这是否意味着我应该为始终包含正值或空值的每一列使用UNSIGNED
属性
假设此表结构:
// vote
+----+---------+---------+-------+------------+----------+
| id | id_post | id_user | value | code_table | time |
+----+---------+---------+-------+------------+----------+
在上表中,除
value
column外,所有列均为空或正。所以,除了value
column之外,我应该为所有列设置UNSIGNED
属性吗?我说得对吗?或者使用UNSIGNED
属性是基于另一个参数的?如果您确定除值
列之外的所有列都将包含正值,则应将其设置为UNSIGNED
。使用UNSIGNED属性仅基于此参数作为您在列中期望的值。还要注意的是,无符号范围从0到n,而有符号范围从-n/2到n/2
在内存方面,有符号类型和无符号类型占用相同的内存空间(INT为4字节)。根据要存储在列中的值使用
无符号属性
例如,ID通常是无符号值(这只是一种约定,没有什么可以阻止您使用负ID值)
另一方面,age
列总是包含正值,UNSIGNED
值非常适合它