MS SQL에서 ntext
vs char(500)
용량 비교
항목 | 설명 | 비고 |
---|---|---|
ntext | 최대 2^30-1 (약 1GB)까지 저장 가능한 가변 길이 유니코드 텍스트 데이터 타입 | 1글자 = 2바이트 (UTF-16 기반), 가변적 저장 (내용 길이에 따라) |
char(500) | 고정 길이 500자 문자열 | 1글자 = 2바이트 (nchar는 유니코드), 무조건 500×2 = 1000바이트 |
🔥 결론
-
char(500)
은 항상 1000바이트(1KB)를 차지합니다. (빈 문자열이어도 공간은 고정) -
ntext
는 저장된 데이터 크기만큼만 공간을 차지합니다. (예: 10글자 저장 시 약 20바이트만 사용)
따라서,
-
데이터가 작거나 가변적이라면
ntext
가 공간을 훨씬 적게 차지합니다. -
데이터가 항상 꽉 차 있는 경우(500자 꽉 채움)라면 둘 다 비슷할 수 있지만, ntext는 추가 메타데이터(포인터 구조)가 있어서 약간 오버헤드가 있을 수 있습니다.
📌 추가 주의사항
-
ntext
는 구형 데이터 타입입니다. (SQL Server 2005 이후부터ntext
,text
,image
는 deprecated = 사용 비추천) -
대신에 **
nvarchar(max)
**를 사용하는 것이 권장됩니다. -
관리나 쿼리 최적화 측면에서도
ntext
보다nvarchar(max)
가 더 좋습니다.
요약
데이터 타입 | 용량 특징 | 비고 |
---|---|---|
char(500) | 무조건 1000바이트 고정 | 고정 저장, 비효율적 가능 |
ntext | 데이터 크기에 따라 변동 | 효율적이나 구버전 타입 |