NULL값 허용 유무 0 1 629

by 나는짱이야 [SQLServer] [2020.03.05 08:44:38]


안녕하세요. 기존 DB구조를 마이그레이션 해야 하는일이 있어서 궁금한 사항이 있어서 이렇게 글을 올립니다.

신규 컬럼 추가 후 해당 컬럼 값을 NULL허용해서 값이 없으면 당연히 NULL값을 입력해야 한다고 생각했는데.NULL값 넣으면 오히려 비 효율적이다 라는 의견이 있더라구요.

그래서 NULL허용을 하지 않은 상태로 설정 한 상태입니다.

왜 비효율적인지 잘 이해가 되지 않아서요.

제가 생각은 관점은 이렇습니다. 오히려 빈값(공백값)을 넣을 데이터 공간을 차지 하게 되니 오히려 공간 낭비가 발생하게 되고 이게 실제로 소스단에서 값이없어서 공백값이 들어간건지? 아니면 오류 발생하면서 공백 값이 들어간건지 구분히 어렵지 않나 라는 생각이 듭니다.

오히려 NULL을 허용하면 데이터가 공간 덜 차지 하게 되고 데이터를 보는 관점에서도 명확하지 않나 라는 생각입니다.

혹시 아시는분들 답변 부탁 드립니다.

감사합니다.

by 우리집아찌 [2020.03.05 09:07:28]

시간이 잠깐 남아서 적어봅니다

사실 이런건 모델링쪽에서 접근해야한가고 봅니다

해당 컬럼이 null이 존재한다는거 부터 생각해봐야죠

null이란 제3의 값이지요 아무것도 없다 즉 무의 상태입니다. 

해당컬럼에 아무것도 없어야 맞다면 null을 그냥 두는게 맞습니다.  굳이 맞지도 않는 데이터를 넣을 필요도 없습니다. 

예를 들어 해당컬럼이 숫자일때 무조건 디폴트라 0이면 avg 같은 집계 함수시 예상과 다른값이 나올수 있지요 

그러므로 성능보다는 정확한 구조(?) 가 더 중요합니다

그리고 테이블이 정말 크지않다면 어떻게 하던디다저장용량 차이도 크지 않을것 같습니다

성능에 대한건 다른분이 알려주실거에요

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입