• 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)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 1. 함수와 연산자 참조
    2. 식 평가 형식 변환
    3. 연산자
    4. 제어 흐름 함수
    5. 문자열 함수
    6. 수치 함수와 연산자
    7. 날짜 및 시간 함수
    8. MySQL에서 사용되는 달력
    9. Full-Text 검색 기능
    10. 캐스트 함수와 연산자
    11. XML 함수
    12. 비트 함수
    13. 암호화 함수와 압축 함수
    14. 정보 함수
    15. 공간 분석 함수
    16. 글로벌 트랜잭션 ID와 함께 사용되는 함수
    17. MySQL Enterprise Encryption 기능
    18. 기타 함수
    19. GROUP BY 절에서 사용되는 함수와 수식
    20. 정밀 계산
  • 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 새로운 기능

12.16 글로벌 트랜잭션 ID와 함께 사용되는 함수

이 절에서 설명하는 함수는 GTID 기반 복제 (MySQL 5.6.5 이후에 사용 가능)에서 사용됩니다. 이러한 모든 함수는 인수로 GTID 세트의 캐릭터 라인 표현이 지정되므로 이러한 함수와 함께 GTID 세트를 사용할 때는 항상 따옴표로 묶어야 있다는 것을 기억하는 것이 중요합니다 .

두 GTID 세트의 결합은 단순히 쉼표를 삽입하고 결합 된 문자열로 표현 된 것입니다. 즉, 여기서 생성 된 함수와 마찬가지로 매우 간단한 함수를 정의하면 GTID 세트의 결합을 얻을 수 있습니다.

 CREATE FUNCTION GTID_UNION (g1 TEXT, g2 TEXT) 
     RETURNS TEXT DETERMINISTIC
     RETURN CONCAT (g1 ','g2);  

GTID의 자세한 정보와이 GTID 함수를 실제로 사용하는 방법은 섹션 17.1.3 "글로벌 트랜잭션 식별자를 사용한 복제" 를 참조하십시오.

표 12.20 GTID 함수

이름 설명
GTID_SUBSET() 부분 집합 내의 모든 GTID가 세트 내에도있는 경우는 true를 돌려줍니다. 그렇지 않은 경우는 false를 돌려줍니다.
GTID_SUBTRACT() 세트의 GTID 중 일부에없는 것을 모두 돌려줍니다.
SQL_THREAD_WAIT_AFTER_GTIDS() (deprecated 5.6.9) 폐지 : WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS ()로 대체되었습니다
WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS() 지정된 GTID가 슬레이브로 실행 될 때까지 기다립니다.

  • GTID_SUBSET( subset , set )

    2 세트의 글로벌 트랜잭션 ID subset 와 set 가 지정된 경우 subset 의 모든 GTID가 set 에 존재하면 true (1)을 반환합니다. 그렇지 않으면 false (0)을 반환합니다.

    이 함수에서 사용되는 GTID 세트는 다음 예제와 같이 문자열로 표현됩니다.

     mysql> SELECT GTID_SUBSET('3E11FA47-71CA-11E1-9E33-C80AA9429562:23', 
         -> '3E11FA47-71CA-11E1-9E33-C80AA9429562:21-57')\G
     *************************** 1. row ******************** *******
     GTID_SUBSET ( '3E11FA47-71CA-11E1-9E33-C80AA9429562 : 23' 
         '3E11FA47-71CA-11E1-9E33-C80AA9429562 : 21-57') : 1
     1 row in set (0.00 sec)
    
     mysql> SELECT GTID_SUBSET('3E11FA47-71CA-11E1-9E33-C80AA9429562:23-25', 
         -> '3E11FA47-71CA-11E1-9E33-C80AA9429562:21-57')\G
     *************************** 1. row ******************** *******
     GTID_SUBSET ( '3E11FA47-71CA-11E1-9E33-C80AA9429562 : 23-25​​' 
         '3E11FA47-71CA-11E1-9E33-C80AA9429562 : 21-57') : 1
     1 row in set (0.00 sec)
    
     mysql> SELECT GTID_SUBSET('3E11FA47-71CA-11E1-9E33-C80AA9429562:20-25', 
         -> '3E11FA47-71CA-11E1-9E33-C80AA9429562:21-57')\G
     *************************** 1. row ******************** *******
     GTID_SUBSET ( '3E11FA47-71CA-11E1-9E33-C80AA9429562 : 20-25' 
         '3E11FA47-71CA-11E1-9E33-C80AA9429562 : 21-57') : 0
     1 row in set (0.00 sec)
    

    이 함수는 MySQL 5.6.5에서 추가되었습니다.

  • GTID_SUBTRACT( set , subset )

    2 세트의 글로벌 트랜잭션 ID subset 와 set 가 지정된 경우 set 의 GTID에서 subset 에 존재하지 않는 것만을 반환합니다.

    이 함수에서 사용되는 GTID 세트는 모든 문자열로 표현되기 때문에 다음 예제와 같이 따옴표로 묶어야합니다.

     mysql> SELECT GTID_SUBTRACT('3E11FA47-71CA-11E1-9E33-C80AA9429562:21-57', 
         -> '3E11FA47-71CA-11E1-9E33-C80AA9429562:21')\G
     *************************** 1. row ******************** *******
     GTID_SUBTRACT ( '3E11FA47-71CA-11E1-9E33-C80AA9429562 : 21-57' 
         '3E11FA47-71CA-11E1-9E33-C80AA9429562 : 21') : 3e11fa47-71ca-11e1-9e33-c80aa9429562 : 22-57
     1 row in set (0.00 sec)
    
     mysql> SELECT GTID_SUBTRACT('3E11FA47-71CA-11E1-9E33-C80AA9429562:21-57', 
         -> '3E11FA47-71CA-11E1-9E33-C80AA9429562:20-25')\G
     *************************** 1. row ******************** *******
     GTID_SUBTRACT ( '3E11FA47-71CA-11E1-9E33-C80AA9429562 : 21-57' 
         '3E11FA47-71CA-11E1-9E33-C80AA9429562 : 20-25') : 3e11fa47-71ca-11e1-9e33-c80aa9429562 : 26-57
     1 row in set (0.00 sec)
    
     mysql> SELECT GTID_SUBTRACT('3E11FA47-71CA-11E1-9E33-C80AA9429562:21-57', 
         -> '3E11FA47-71CA-11E1-9E33-C80AA9429562:23-24')\G
     *************************** 1. row ******************** *******
     GTID_SUBTRACT ( '3E11FA47-71CA-11E1-9E33-C80AA9429562 : 21-57' 
         '3E11FA47-71CA-11E1-9E33-C80AA9429562 : 23-24') : 3e11fa47-71ca-11e1-9e33-c80aa9429562 : 21-22 : 25-57
     1 row in set (0.01 sec)
    

    이 함수는 MySQL 5.6.5에서 추가되었습니다.

  • SQL_THREAD_WAIT_AFTER_GTIDS( gtid_set [, timeout ])

    SQL_THREAD_WAIT_AFTER_GTIDS() 는 MySQL 5.6.5에서 추가 된 MySQL 5.6.9에서 WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS() 로 대체했습니다. (Bug # 14775984)

    자세한 내용은 섹션 17.1.3 "글로벌 트랜잭션 식별자를 사용한 복제" 를 참조하십시오.

  • WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS( gtid_set [, timeout ])

    슬레이브 SQL 쓰레드가 gtid_set 에 글로벌 트랜잭션 ID가 포함 된 모든 트랜잭션이 실행되는지 ( "GTID 세트"의 정의에 대해서는 섹션 17.1.3.1 "GTID의 개념" 을 참조하십시오) timeout 초가 경과하거나 중 하나가 먼저 발생할 때까지 대기합니다. timeout 옵션에서 기본 시간 초과는 0입니다. 이 경우 마스터 단순히 GTID 세트 내의 모든 트랜잭션이 실행될 때까지 대기 할뿐입니다.

    MySQL 5.6.9 이전에서는 WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS() 는 SQL_THREAD_WAIT_AFTER_GTIDS() 라는 이름이었습니다. (Bug # 14775984)

    자세한 내용은 섹션 17.1.3 "글로벌 트랜잭션 식별자를 사용한 복제" 를 참조하십시오.

    이 함수에서 사용되는 GTID 세트는 다음 예제와 같이 문자열로 표현되기 때문에 따옴표로 묶어야합니다.

     mysql> SELECT WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS('3E11FA47-71CA-11E1-9E33-C80AA9429562:1-5');
             -> 5
    

    반환 값은 실행 된 트랜잭션 이벤트의 수입니다. MySQL 5.6.8 이전에서는이 함수는 시간 제한이 설정되어 있지 않은 경우는 예상 불가능한 동작되고, GTID 기반 복제가 활성화되지 않은 경우에도 불려 가고있었습니다. MySQL 5.6.8 이후에서는 gtid_mode 이 OFF 이면 항상 NULL 을 반환합니다. (Bug # 14640065)


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