728x90
반응형
1. char vs varchar
char | varchar | |
인코딩 | UTF-8 | |
크기 | 고정 | 가변 |
char(n), varchar(n)에서 n이란 문자 수라고 생각하는 사람이 많은데 n은 문자열의 바이트를 말한다.
UTF-8을 저장할 때는 1바이트 (8비트)를 사용하여 저장하지만, 한글과 같이 UTF-16이상의 문자를 인코딩할때는 2바이트 이상(16비트)을 사용하여 저장한다.
ex)
char(10) = 'hi' [10바이트]
varchar(10) = 'hi' [2바이트]
varchar(10) = '안녕' [4바이트] (문자가 깨질 가능성이 있음)
만약 UTF-8에 해당하는 문자(영어, 숫자)만 사용될 변수나 테이블의 컬럼이라면 char나 varchar를 사용하는 것이 좋다.
2.nchar vs nvarchar
nchar | nvarchar | |
인코딩 | UTF-16 | |
크기 | 고정 | 가변 |
nchar(n), nvarchar(n)에서 n이란 문자열 길이의 바이트 쌍을 말한다.
UTF-16을 저장할때 2바이트(16비트)로 저장한다.
ex)
nchar(10) = 'hi' [20바이트]
nvarchar(10) = 'hi' [4바이트]
UTF-16이상을 인코딩 해야하는 변수나 테이블의 컬럼을 사용한다면 nchar나 nvarchar를 사용하는 것이 좋다.
nvarchar(n)의 n의 값에 MAX를 사용할 경우 최대 스토리지 크기가 2GB임을 나타낸다.
728x90
반응형
'IT > MSSql' 카테고리의 다른 글
[MS-SQL] 실무에서 자주 사용되는 쿼리 - 1 (0) | 2025.05.19 |
---|---|
[MS-SQL] 자료형 정리 (0) | 2025.05.14 |
[MSSQL] 쿼리 튜닝 - 임시 테이블 (0) | 2025.04.24 |
[MSSQL] 문자 띄어쓰기 해결법 (SSMS) (0) | 2025.04.22 |
[MSSQL] SP_LOCK (LOCK 조회) (0) | 2025.04.22 |