• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 1. 문자 세트 지원
    2. 오류 메시지 언어 설정
    3. 문자 세트 추가
    4. 문자 세트에 데이터 정렬 추가
    1. 데이터 정렬의 구현 유형
    2. 데이터 정렬 ID의 선택
    3. 8 비트 문자 세트에 대한 간단한 데이터 정렬 추가
    4. Unicode 문자 세트에 UCA 데이터 정렬 추가
    5. 문자 세트 구성
    6. MySQL Server에서 시간대 지원
    7. MySQL Server의 로케일 지원
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

10.4 문자 세트에 데이터 정렬 추가

10.4.1 데이터 정렬의 구현 유형
10.4.2 데이터 정렬 ID의 선택
10.4.3 8 비트 문자 세트에 대한 간단한 데이터 정렬 추가
10.4.4 Unicode 문자 세트에 UCA 데이터 정렬 추가

데이터 정렬은 문자열을 비교 및​​ 정렬하는 방법을 정의한 일련의 규칙입니다. MySQL에서의 각각의 데이터 정렬은 단일 문자 집합에 속해 있습니다. 모든 문자 집합은 하나의 데이터 정렬이 속한 대부분의 문자 세트는 두 개 이상의 데이터 정렬이 속해 있습니다.

데이터 정렬은 가중치에 따라 문자를 정렬합니다. 문자 집합의 각 문자가 무게에 매핑되어 있습니다. 가중치가 동일한 문자는 동등한 것으로 간주 가중치가 동일하지 않은 문자는 그 무게의 상대적인 크기에 따라 비교됩니다.

WEIGHT_STRING() 함수를 사용하면 문자열에서 문자의 가중치를 확인할 수 있습니다. 무게를 나타낸 반환되는 값은 이진 문자열이기 때문에, HEX(WEIGHT_STRING( str )) 을 사용하여 무게를 출력 할 수있는 형식으로 표시하면 편리합니다. 다음 예제는 대소 문자를 구별하지 않는 바이너리가 아닌 문자열 인 경우는 'AaBb' 의 대문자와 소문자로 무게는 다르지 않지만, 이진 문자열이면 다른 것을 나타냅니다.

mysql> SELECT HEX(WEIGHT_STRING('AaBb' COLLATE latin1_swedish_ci));
+------------------------------------------------------+
| HEX(WEIGHT_STRING('AaBb' COLLATE latin1_swedish_ci)) |
+------------------------------------------------------+
| 41414242                                             |
+------------------------------------------------------+
mysql> SELECT HEX(WEIGHT_STRING(BINARY 'AaBb'));
+-----------------------------------+
| HEX(WEIGHT_STRING(BINARY 'AaBb')) |
+-----------------------------------+
| 41614262                          |
+-----------------------------------+

섹션 10.4.1 "데이터 정렬의 구현 유형" 에서 설명하는 것처럼, MySQL은 여러 데이터 정렬의 구현을 지원하고 있습니다. 이 중 일부는 다시 컴파일하지 않고 MySQL에 추가 할 수도 있습니다.

  • 8 비트 문자 세트의 간단한 데이터 정렬.

  • Unicode 캐릭터 세트의 UCA 기반 데이터 정렬.

  • 바이너리 ( xxx _bin ) 데이터 정렬.

다음 섹션에서는 처음 두 종류의 데이터 정렬을 기존 문자 세트에 추가하는 방법을 설명합니다. 이진 데이터 정렬은 기존의 문자 세트도 이미 준비되어 있기 때문에 여기에서는 추가 방법은 설명하지 않습니다.

새로운 데이터 정렬을 추가하는 방법 요약 :

  1. 데이터 정렬 ID를 선택합니다.

  2. 데이터 정렬 이름을 지정 구성 정보를 추가하고 문자 순서 규칙에 대해 설명합니다.

  3. 서버를 다시 시작합니다.

  4. 데이터 정렬이 존재하는지 확인합니다.

여기에서의 설명은 MySQL을 재 컴파일 할 필요없이 추가 할 데이터 정렬만을 다룹니다. 재 컴파일을 필요로하는 데이터 정렬 (C 소스 파일의 함수를 이용하여 구현 된 것 등)을 추가하려면 섹션 10.3 "문자 세트 추가" 단계를 사용하십시오. 그러나 완전한 문자 세트에 필요한 모든 정보를 추가하는 것이 아니라 기존의 문자 집합에 따라 적절한 파일을 변경합니다. 즉, 문자 집합의 현재 데이터 정렬 이미 존재하는 것에 따라 새로운 데이터 정렬 데이터 구조, 함수, 구성 정보를 추가합니다.

참고

기존의 데이터 정렬을 변경하면 데이터 정렬을 사용하는 컬럼에 인덱스의 행 순서에 영향을 줄 수 있습니다. 이 경우 잘못된 쿼리 결과 등의 문제가 일어나지 않도록 이러한 인덱스를 다시 작성하십시오. 자세한 내용은 섹션 2.11.3 "테이블 또는 인덱스 재구성이 필요한지 확인" 을 참조하십시오.

추가 리소스

  • Unicode 데이터 정렬 알고리즘 (UCA) 사양 : http://www.unicode.org/reports/tr10/

  • Locale Data Markup Language (LDML) 사양 : http://www.unicode.org/reports/tr35/

  • MySQL 블로그 기사 "새로운 Unicode 데이터 정렬을 추가하는 단계": http://blogs.mysql.com/peterg/2008/05/19/instructions-for-adding-a-new-unicode-collation/


서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved