Answers:
这是个好主意吗?
没有。
会
numeric(6,0)
占用更少的字节?
没有。
test=> SELECT pg_column_size(INT4 '999999'), pg_column_size(NUMERIC(6,0) '999999');
pg_column_size | pg_column_size
----------------+----------------
4 | 10
(1 row)
性能如何(该表被查询很多)?
慢点。它存储为二进制编码的十进制,因为它是任意精度值。
numeric
列更改为有问题 int
吗?
对于您所有的问题,绝对的答案是否定的。整数始终是您可以使用它的任何方法。(例如,金钱)
考虑一分钟。当数据库引擎遇到一个整数时,它会非常有效地处理它,因为对其没有太多解释。这是一个整数。数值类型的行为更像是字符串。引擎首先必须找出小数点之前和之后的部分,并对它们进行适当的按摩以执行数字运算。
尽管数字类型通常对人类来说更方便,但使用整数总是比数字更有效。
NUMERIC
。但是,缩放整数比使用浮点数货币更好。