답변:
이것이 좋은 생각입니까?
아니.
것입니다
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)
성능은 어떻습니까 (이 테이블은 많이 쿼리되고 있습니까)?
느리다. 임의의 정밀도 값이므로 이진 코드 10 진수로 저장됩니다.
numeric열을 변경하는 데 문제 가 int있습니까?
정답은 모든 질문에 대한 것은 아닙니다. Integer는 항상 사용할 수있는 모든 것을위한 길입니다. (예 : 돈)
잠시 생각해보십시오. 데이터베이스 엔진은 정수를 만나면 해석이 많지 않기 때문에 매우 효율적으로 처리합니다. 정수입니다. 숫자 유형은 문자열처럼 동작합니다. 엔진은 먼저 소수점 앞뒤에 어떤 부분이 있는지 알아 내고 숫자 연산을 수행하기 위해 적절히 마사지합니다.
숫자 유형은 종종 사람에게 더 편리하지만 정수를 사용하는 것이 항상 숫자보다 효율적입니다.
NUMERIC. 그래도 확장 정수는 돈에 부동 소수점 값을 사용하는 것보다 낫습니다.