【发布时间】:2018-02-11 02:22:50
【问题描述】:
我正在开发一个程序并遇到了一个错误,即在表列中插入一个类型为 int 的值,并且该值大于 Integer.MAX_VALUE 它吐出一个错误说数字太大。我读到解决这个问题的方法很简单,只是将表更改为 BigInt,这应该可以解决它。但这让我想,为什么不是所有的程序员都只使用最大列值(例如 Varchar(255)、BigInt 等)而不是像 Varchar(30) 或 Int 这样的更小的值?
当您不确定要插入什么内容时,尤其是如果它基于用户输入时,这不会几乎完全消除像我这样的错误吗?仅使用列所需的最大可能类型有什么缺点吗?即使你在一个大的 int 列中只有“2”,表的大小也会更大(即使这适用于 int?)。有没有性能损失?
谢谢!
【问题讨论】:
-
您使用的是哪个数据库?
-
请编辑你的问题标签和你正在使用的实际数据库标签。
-
@TimBiegeleisen 是对的,这类问题没有通用答案,只有各种数据库特定的答案。
-
varchar(255)绝对不是 varchar 列的“最大列大小”。
标签: mysql sql-server postgresql performance