답변:
대부분의 DB에서 NOT NULL
열은 사용자가 언급 한 이유로 저장된 데이터 측면에서보다 효율적이며 쿼리 및 색인화에 더 효율적입니다. 따라서 열에 NULL을 허용하지 않으면 명시 적으로 허용하지 않아야합니다.
NOT NULL
INSERT 또는 UPDATE로 영향을받는 각 행에 대해 추가 제약 조건을 잠재적으로 확인해야 하므로 성능에 약간의 영향이 있지만 대부분의 데이터베이스는 상대적으로 쓰기가 적고 읽기가 많기 때문에 문제가되지 않습니다. 나머지 삽입 / 업데이트 작업이 IO 바운드되어 훨씬 더 중요한 병목 현상이 발생하는 CPU 바운드 작업이므로 추가 시간이 전혀 눈에 띄지 않을 것입니다. "데이터 검사를 통해 코드 (또는 다른 사람의 코드)가 실수로 다른 코드가 예상하지 않는 위치에 NULL을 넣을 수 없으므로 존재 여부에 따라 잘못된 결과가 발생할 수 있습니다.
편집 : Peter가 자신의 의견에서 지적한 것처럼 위의 내용은 일반주의이며 모든 DMBS에 적용되지는 않지만 mysql 및 mssql에 대해서는 확실합니다. 이 영역의 다른 복잡한 문제에는 스파 스 테이블 (예 : MSSQL 2008 구현)과 같은 기능이 포함되어 Null을 허용하지 않는 열의 성능 역학이 변경 될 수 있습니다.
스키마 디자인 및 응용 프로그램 요구 사항이이 결정을 안내하도록해야합니다. 대부분의 경우 성능 차이가 눈에 띄지 않을 수 있습니다.
NULL
경우에만 허용해야합니다NULL
.