为什么有人会对简单的整数 ID 列使用 numeric(12, 0) 数据类型?如果您有理由说这比 int 或 bigint 更好,我想听听。
我们不对该列进行任何数学计算,它只是一个用于外键链接的 ID。
我正在编制一份关于某个产品的编程错误和性能问题的列表,我想确定他们这样做不是出于某种合乎逻辑的原因。如果您点击此链接: http://msdn.microsoft.com/en-us/library/ms187746.aspx
...您可以看到 numeric(12, 0) 使用 9 个字节的存储空间并限制为 12 位数字,如果包括负数,则总共有 2 万亿个数字。当一个人可以使用 bigint 并以少一个字节的存储空间获得 1000 万倍的数字时,为什么他们会使用它。此外,由于这是用作产品 ID,因此标准 int 的 40 亿个数字已经绰绰有余。
所以在我拿起手电筒和干草叉之前 - 告诉我他们在辩护中会说些什么?
不,我不是无中生有,软件中有数百个这样的问题,它们都会导致巨大的性能问题,并在数据库中使用过多的空间。我们为这个废话支付了超过 100 万美元...所以我很认真地对待它。
最佳答案
也许他们习惯于使用 Oracle?
包括 int 在内的所有数字类型都在所有平台上标准化为标准的单一表示形式。
关于sql - 在 T-SQL 中有任何理由使用数字而不是 int 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/440779/