DataBase 궁금한 점이 있습니다.

데이터베이스에 insert 하면서 궁금한 점이 생겼습니다.

어떤 금액의 컬럼 데이터 타입이 Decimal(19,2) 으로 되어 있습니다.

아참, mssql 로 사용하고 있구요.

여기에 0만 들어가도 9 byte가 될텐데요...

NULL 이 들어가면 몇 byte가 될까요?

NULL 을 허용하도록 설계된 테이블입니다.

금액이 없을 때 0이 아닌 NULL을 넣어 byte를 줄인다면 몇만로우가 쌓였을 때

용량에 적지 않은 영향을 줄 것 같아 질문합니다.

    2개의 답변이 있어요!

    • 안녕하세요.

      예전에 DBA로 증권회사에서 일하면서 비슷한 문제가 있었던 적이 있습니다.

      물론 당시는 MYSQL 환경이었으나 MSSQL도 유사한 것으로 알고 있는데요.

      제가 알기론, NULL은 big flag로 세팅되어 일반적으로 값을 차지하지 않습니다.

      자세한 내용은 아래 링크를 참고하시면 될 것 같습니다.

      https://stackoverflow.com/questions/3731172/how-much-size-null-value-takes-in-sql-server

    • 제가 알기론 db에서 데이타 타입을 정의할때 숫자는 기본적으로 null 값이 없습니다

      기본값이 0이구요

      문자열 속성이 null 값이 존재합니다

      그리고

      숫자로 바이트 수 용량을 줄이기보다는

      문자속성을 char 보다는 varchar로 주시면 용량 절감이

      많이 될수 있습니다