SQL 서버 2019 마이크로 소프트 소개와 UTF-8 지원 에 대한 CHAR
및 VARCHAR
데이터 유형을 다음과 같이 말한다 :
이 기능은 사용중인 문자 세트에 따라 스토리지를 크게 절약 할 수 있습니다. 예를 들어, UTF-8 사용 데이터 정렬을 사용하여 ASCII 문자열이있는 기존 열 데이터 유형을 NCHAR (10)에서 CHAR (10)으로 변경하면 스토리지 요구 사항이 거의 50 % 감소합니다. 이 감소는 NCHAR (10)에 22 바이트의 저장 공간이 필요하고 CHAR (10)에는 동일한 유니 코드 문자열에 12 바이트가 필요하기 때문입니다.
UTF-8은 것 같다 지원 하므로 기본적으로 우리가 유니 코드 데이터를 저장하기 시작, 모든 스크립트 varchar
및 char
열. 그리고 문서에서 말했듯이, 이것은 테이블과 인덱스의 크기를 줄일 수 있으며 더 적은 양의 데이터를 읽으므로 더 나은 성능을 얻을 수 있습니다.
나는 이것이 우리가 사용 중지 할 수 있습니다 의미합니까 궁금 nvarchar
하고 nchar
열이있는 구현 UTF-16?
누구나 char 데이터 유형을 UTF
인코딩과 함께 사용하지 않고 n 문자 유형을 계속 사용 하지 않도록 시나리오와 이유를 지적 할 수 있습니까 ?
CHAR
경우 유니 코드 유형보다 UTF-8 유형을 사용하는 것이 더 나빠질 수 있습니다 (압축 유무에 관계없이 처리를 위해서는 데이터를 압축 해제해야하므로). Windows의 기본 문자열 유형은 유니 코드이므로 UTF-8 문자열은 종종 디코딩해야합니다. 관련된 트레이드 오프는 해당 N
유형이 곧 폐기 될 가능성이 낮음을 의미합니다 .
CHAR
엔진이 문자열을 UTF-8로 직접 처리하는 기본 지원을 얻는 경우 UTF-8의 # 1 "킬러 앱"은 Linux의 SQL Server 일 것입니다. 여기서 UTF-8은 "네이티브"문자 집합입니다. UTF-16으로 문자열을 유지하는 것이 덜 효율적인 대안입니다. CHAR
저장할 수있는 문자를 제한하는 데이터 정렬이 매력적이지 않았기 때문에 이미 이미 사용중인 위치에서 Windows에서 사용하는 것은 아프지 않습니다 .