테이블에서 디스크 공간 사용
우수 사례로서, 필요한 디스크 공간만 사용하도록 테이블을 설계하십시오. 예를 들어, 공간을 저장하기 위해 가장 적은 자릿수를 사용하고, 작은 크기로 충분한 경우 최대값을 사용자 제어 가능한 크기로 설정하지 마십시오.
아래 표는 다음 데이터 유형에서 사용하는 디스크 공간의 크기에 대해 설명합니다.
| 데이터 유형 | 사용량 |
|---|---|
| 정수(big)(INT8) | 8바이트 |
| 정수(INT4) | 4바이트 |
| 정수(small)(INT2) | 2바이트 |
| 정수(tiny)(INT1) 및 부울 | 1바이트 |
| 18자리를 초과하는 숫자 | 16바이트 |
| 10에서 18자리의 숫자 | 8바이트 |
| 9자리 이하의 숫자 | 4바이트 |
| float8s | 8바이트 |
| float4s | 4바이트 |
| 표준 시간대의 시간 및 간격 | 12바이트 |
| 시간 및 시간소인 | 8바이트 |
| 날짜 | 4바이트 |
| char(16) | 16바이트 |
| char(n*) 및 varchar(n) 16바이트 이상의 char 데이터 유형은 마치 명목상 동일한 크기의 varchar 데이터 유형인 것처럼 디스크에 표시됩니다. |
N+2, 또는 더 적음, 바이트, 실제 컨텐츠에 따라 다름 |
| char(1) | 1바이트 |
| nchar(n*) 및 nvarchar(n) nchar 및 nvarchar 문자는 항상 nvarchar인 것처럼 저장됩니다. |
N+2에서 (4 * N) + 2 |
IBM Netezza 어플라이언스 및 IBM Netezza 어플라이언스 테이블의 다음 특성에 유의하세요:
- 모든 테이블에서 모든 레코드 또한 행 ID를 표시하는 3개의 8바이트 특수 필드, 행을 작성한 트랜잭션의 트랜잭션 ID 및 행을 삭제한 트랜잭션의 트랜잭션 ID(행이 삭제되지 않은 경우는 0)를 포함합니다. 이러한 컬럼은 특수 컬럼 또는 특수 문자로 참조됩니다.
- 선언된 크기가 16 이상이고 실제 컨텐츠는 홀수 바이트인 모든 varchar 데이터 유형은 바이트로 채웁니다.
- 또한 대부분의 레코드는 (2바이트) 길이와 널(null) 벡터(N/8바이트, 여기서 N은 레코드의 컬럼 수)로 구성된 헤더를 포함합니다. 시스템은 4바이트의 배수로 이 헤더의 크기를 올림합니다. 레코드에 헤더가 없는 경우는 널 입력 가능한 컬럼이 없거나 가변 크기 컬럼이 없는 경우(varchar 및 char 데이터 유형이 16바이트 이상)만 해당합니다.
- 모든 레코드는 4바이트 경계에서 시작하기 때문에 전체 레코드 크기를 적절히 반올림하십시오.
- 데이터 슬라이스의 가장 작은 할당 단위는 익스텐트이며 현재 3MB 디스크 공간입니다. 이 숫자는 소프트웨어가 릴리스되면 나중에 변경될 수 있습니다.