我有一个具有以下结构的表的主键,
**Field** **Type** nid int(10)unsigned
我知道 int(10) 的最大限制是 4294967295。但是如果超过最大值会怎样?我应该换成 bigint 吗?如果是这样,最佳做法是在主键中使用 int 或 big int 吗?
我有一个具有以下结构的表的主键,
**Field** **Type** nid int(10)unsigned
我知道 int(10) 的最大限制是 4294967295。但是如果超过最大值会怎样?我应该换成 bigint 吗?如果是这样,最佳做法是在主键中使用 int 或 big int 吗?
既然你需要去BIGINT,那就为磁盘空间增长做准备。
对于每个使用 INT 且您想切换到 BIGINT 的表,您必须预测需要多少额外空间。
mydb.mytable
例如,要计算将所有 INT(10) 列转换为 BIGINT 时会增加多少空间,请运行此查询让我们使用表
dev_oxygen.bplv_reg
注意表的年龄是 int(10)
这是表数:
现在让我们计算表必须增长的字节数:
这个数字只是列的大小增加(以字节为单位)
age
。呢
id
?它不是 int(10) 而是 int(11)。您能否预测 int(11),当然,只需int(10)
在查询中替换为int(11)
.那么主键呢?如果主键有多个定义为 int(11) 的 int 列呢?
让我们选择一个名为
oxygen.history;
该表主键有两列,两列都是int(11)
根据预测的主键增加多少,您现在可以增加这些