배운 내용:
NULL 의미가 불분명합니다
쿼리 최적화가 쉽지 않습니다
Null 값을 나타내는 경우 (논리적으로) 다른 대안이 있을 수 있습니다
VARCHAR(100) NULL이 아님 기본값 '';
INT는 NULL이 아닙니다. 기본값 0;
Scheme을 설계할 때 NULL에 대한 태도를 이해하고 싶습니다. (시도해야 한다는 기사를 읽은 기억이 납니다: NOT NULL DEFAULT XXX)
巴扎黑2017-05-18 10:56:25
네, NULL 열은 최대한 피해야 하며, 특히 인덱스 열의 경우 기본값을 최대한 명시적으로 설정해야 합니다. mysql에서는 null이 공간을 차지합니다. 값이 인덱싱되면 해당 인덱스는 유효하지 않습니다.
某草草2017-05-18 10:56:25
예, 필드가 비어 있지 않다고 판단할 때 is not null도 사용해야 합니다. mysql에서 NULL은 실제로 공간을 차지합니다. NULL 값은 B-트리 인덱스에 저장되지 않으므로 인덱스된 필드가 NULL이면 인덱스 효율이 많이 떨어집니다.