2009-12-03 3 views
9

MySQL의 NULL과 Empty String의 차이점은 무엇입니까?mysql에서 NULL과 Empty의 차이점은 무엇입니까

걸리는 저장 공간은 얼마입니까?

예를 들면. 사용자 테이블에서

이름 : NULL - 그

전화를 가지고 얼마나 많은 공간이 : - 어떻게 많은 공간의 테이크

+0

이미 답변 됨 : http://stackoverflow.com/questions/229179/null-in-mysql-performance-storage – Donnie

+0

동일하지 않음 – cHeE

답변

4

NULL을 사용하는 유효한 이유가 있지만 행 저장 공간을 절약하는 것이 1이 아닙니다. '모르겠다'는 자리 표시자를 사용하려면 NULL을 사용하십시오. 빈 문자열처럼 작동하는 빈 문자열을 저장하기 만하면 빈 문자열을 저장하십시오. 만약 VARCHAR 컬럼이라면 (어쩌면 그렇게 될 것입니다) 어쨌든 많은 공간을 거의 가지고 있지 않습니다.

20

NULL에 대해 생각하는 가장 좋은 방법은 유독 한 것입니다.

NULL로 수행 된 모든 작업은 NULL을 생성합니다.

NULL + 모든 숫자 유형이 널입니다. NULL concat 모든 문자열은 null입니다. 이 컬럼이 정의 된 데이터 유형에 따라 저장 공간으로

mysql> select concat('hello world', null); 
+-----------------------------+ 
| concat('hello world', null) | 
+-----------------------------+ 
| NULL      | 
+-----------------------------+ 

mysql> select concat('hello world', ''); 
+---------------------------+ 
| concat('hello world', '') | 
+---------------------------+ 
| hello world    | 
+---------------------------+ 

:

빈 문자열은 0

예의 길이 문자열입니다.

4

저장 공간에 관련해서는 안됩니다. 대신 NULL의 의미에 관심을 가져야합니다. 네가 평생 보지 못했던 집에 유리 잔을 가지고 있다고 가정 해 봅시다. 유리 잔에 물의 양이 얼마나 많은지 물어 보면 유효한 대답을 드릴 수 없습니다. 진실은 당신이 모르는 것이다. 이제 유리를 가져다가 거기에 물이 없다는 것을 보여 주면, 당신이 내게 줄 대답은 "없음"입니다. NULL은 "나는 대답을 모른다"이고 빈 문자열은 "나는 알고 있고 대답은 빈 문자열이다"입니다.

관련 문제