티스토리 뷰
출처 : https://stackoverflow.com/questions/144283/what-is-the-difference-between-varchar-and-nvarchar
NVARCHAR 데이터형 컬럼은 어떠한 유니코드 데이터도 저장할 수 있다.
VARCHAR 데이터형 컬럼은 8-bit 코드페이지 데이터(예: UTF-8)로 제한된다.
어떤 사람들은 VARCHAR 데이터형이 공백이 없이 저장하기 때문에 이를 사용하는 편이 낫다고 생각하지만 이것이 정답은 아니다.
코드페이지가 호환되지 않는 것은 고통이고, 유니코드는 코드페이지 문제들에 대한 해결책이다. 요즘은 디스크와 메모리 가격이 저렴해졌기 때문에 더이상 코드페이지를 못쓰게 하는데 시간을 낭비할 필요가 없어졌다.
모든 현대적인 OS와 개발자 플랫폼은 국제적으로 유니코드를 사용한다.
VARCHAR 보다는 NVARCHAR를 사용함으로써 데이터베이스에 읽거나 쓸 때마다 매번 encoding 변환을 해야 하는 것을 피할 수 있다.
변환은 시간을 소모하고 에러를 유발할 수 있다. 그리고 변환 에러를 수정하는 것 또한 중대한 문제이다.
만약 오직 아스키 코드만을 사용하는 어플리케이션과 상호작용해야 한다고 해도 데이터베이스에서는 유니코드를 사용할 것을 추천한다.
OS와 데이터베이스 대조 알고리즘은 유니코드를 사용했을 때 더 잘 동작할 것이다. 유니코드는 다른 시스템들과 상호작용할 때 변환문제를 피할 수 있게 한다. 그리고 미래를 준비할 것이다. 유니코드 저장방식의 이점을 누리면서도 당신이 유지해야 하는 구식 시스템을 위해 데이터가 7-bit 아스키 코드로 제한된다는 것을 항상 검증할 수 있다.
'DB > MSSQL' 카테고리의 다른 글
기초문법 (0) | 2020.02.10 |
---|---|
[MSSQL] 문자열 다루기 (0) | 2019.10.29 |