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