INNODB -> 기본 열이 0이어야 합니까 아니면 null이어야 합니까?
제 영어 실력이 조금 약합니다. 죄송합니다.
INNODB를 사용할 때 열이 0이어야 합니까, 아니면 null이어야 합니까?
조인된 열을 0으로 정의하면 문제가 발생합니까?
마지막으로, 성능 면에서 어느 것이 더 좋습니까?
감사해요.
문제를 무시합니다.다음을 제공할 필요는 없습니다.DEFAULT
값. 열을 선언할 필요가 없습니다.NULL
(또는)NOT NULL
).
대신에...
응용 프로그램에 대해 생각해 보십시오.
사례 1: 응용 프로그램은 항상 해당 열에 대한 값을 가지고 있으며 항상 값을 지정합니다.그런 다음 열을 다음으로 선언합니다.NOT NULL
그리고 제공하지 않습니다.DEFAULT
말이 되는군요.
사례 2: 당신은 아직 가치가 없습니다.예:테이블은start_date
그리고.end_date
당신은 그것이 "시작"할 때 행을 만들고, 그래서 당신은 다음을 채웁니다.start_date
(사례 1 참조) 그러나 떠나십시오.end_date
비어 있습니다. "비어 있음"은 다음과 같이 인코딩될 수 있습니다.NULL
그리고.DEFAULT NULL
나중에 너UPDATE
기입할 표end_date
진가를 발휘하여
사례 3: 테이블에는 "카운터"가 있습니다.처음에 행을 추가할 때 카운터는 "1"로 시작해야 합니다.나중에 당신은 할 것입니다.UPDATE ... SET counter=counter+1
행을 만들 때 "1"을 명시적으로 넣거나 삽입할 때 값을 생략할 수 있지만 열이 선언되도록 할 수 있습니다.NOT NULL DEFAULT '1'
NULL
는 "아직 채워지지 않음"(사례 1), "값을 알 수 없음", "기본값 사용" 등을 나타낼 수 있습니다.이것은 응용프로그램 선택사항입니다.
의 다른 용도가 있습니다.NULL
당신이 사용하지 않는 한NULL
각 열을 선언합니다.NOT NULL
.
만약, 언제INSERTing
모든 열을 지정하면 다음이 필요하지 않습니다.DEFAULTs
.DEFAULTs
필요한 것이 아니라 편리한 것입니다.를 사용DEFAULT
숫자에 대해 "0"을 얻습니다.NOT NULL
열, 또는''
현용의
성능 - 문제가 아닐 수도 있습니다.우리가 논의해야 할 특별한 예가 있습니까?
JOINing
나는 아마도 있을 수 있는 칼럼에 참여하는 것을 피할 것입니다.NULL
한 열에 있는 행의 고유 식별자에 다른 테이블에 있는 열과 함께 조인하기 때문에 "실제"에서는 이러한 일이 거의 발생하지 않습니다.
FROM A JOIN B ON B.id = A.b_id
그것은,B.id
아마도.PRIMARY KEY
B의, 그러므로, 그럴 수 없습니다.NULL
반면에,A.b_id
그럴 수도 있겠지요NULL
행이 없음을 나타냄B
의 행에 해당하는A
.괜찮아요.
언급URL : https://stackoverflow.com/questions/56051412/innodb-should-the-default-column-be-zero-or-null
'source' 카테고리의 다른 글
스키마에 대한 MariaBD 대안 (0) | 2023.08.22 |
---|---|
document.ready()에서 jQuery Deferred를 받을 수 있습니까? (0) | 2023.08.22 |
판다 데이터 프레임에서 NaN을 사용하여 행의 정수 인덱스 찾기 (0) | 2023.08.22 |
"R을 변수로 확인할 수 없음"? (0) | 2023.08.22 |
어떻게 하면 CSS로 전체 웹 페이지를 확장할 수 있습니까? (0) | 2023.08.22 |