• 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. 함수와 연산자
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 1. InnoDB 소개
    2. InnoDB의 개념과 아키텍처
    3. InnoDB 구성
    4. InnoDB 관리
    5. InnoDB 테이블 스페이스 관리
    6. InnoDB 테이블 관리
    7. InnoDB 압축 테이블
    8. InnoDB 파일 형식 관리
    9. InnoDB Row Storage and Row Formats
    10. InnoDB 디스크 I/O 및 파일 영역 관리
    11. InnoDB와 온라인 DDL
    12. InnoDB 부팅 옵션 및 시스템 변수
    13. InnoDB의 성능
    14. InnoDB INFORMATION_SCHEMA 테이블
    1. 압축에 관한 InnoDB INFORMATION_SCHEMA테이블
    2. InnoDB INFORMATION_SCHEMA 트랜잭션과 잠금 테이블
    1. InnoDB 트랜잭션과 잠금 테이블의 사용 예
    2. INNODB_LOCKS과 INNODB_LOCK_WAITS 데이터
    3. InnoDB 트랜잭션과 잠금 테이블의 데이터 지속성 및 일관성
    3. InnoDB INFORMATION_SCHEMA 시스템 테이블
    4. InnoDB INFORMATION_SCHEMA FULLTEXT 인덱스 테이블
    5. InnoDB INFORMATION_SCHEMA 버퍼풀 테이블
    6. InnoDB INFORMATION_SCHEMA 메트릭 테이블
    15. InnoDB 모니터
    16. InnoDB 백업 및 복구
    17. InnoDB와 MySQL 복제
    18. InnoDB 및 memcached의 통합
    19. 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 새로운 기능

14.14.2.3 InnoDB 트랜잭션과 잠금 테이블의 데이터 지속성 및 일관성

트랜잭션 및 잠금 테이블 ( INNODB_TRX , INNODB_LOCKS 및 INNODB_LOCK_WAITS )에 의해 공개되는 데이터는 빠르게 변경되는 데이터에 대한 참조를 나타냅니다. 이것은 응용 프로그램에서 시작된 업데이트가 발생한 경우에만 데이터가 변경되는 다른 (사용자) 테이블과는 다릅니다. 기반이되는 데이터는 시스템에 의해 관리되는 내부 데이터이며, 매우 빠르게 변경 될 수 있습니다.

성능상의 이유로 또한 InnoDB 트랜잭션과 잠금중인 INFORMATION_SCHEMA 테이블 간의 JOIN 이 잘못 해석 될 가능성을 최소화하기 위해 하나의 테이블에 대해 SELECT 가 발행 될 때마다, InnoDB 는 필요한 트랜잭션 및 잠금 정보를 중간 버퍼에 수집합니다. 이 버퍼는 마지막으로 읽은 후 0.1 초 이상의 시간이 경과 한 경우에만 갱신됩니다. 3 개의 테이블을 충족하기 위해 필요한 데이터는 원자 적으로하며 일관성을 유지하고 인출 된이 글로벌 내부 버퍼에 저장되어 시점 "스냅 샷"을 형성합니다. 여러 테이블 액세스가 0.1 초 이내에 발생한 경우 (MySQL이이 테이블 간의 조인을 처리하는 경우는 거의 틀림없이 발생합니다) 쿼리를 충족하기 위해 같은 스냅 샷이 사용됩니다.

이들 중 하나의 테이블을 하나의 쿼리로 결합 JOIN 을 실행 한 경우에는 3 개의 테이블의 데이터가 동일한 스냅 샷에서 가져 오기 때문에 올바른 결과가 반환됩니다. 버퍼는 이러한 테이블의 쿼리마다 새로 고침되지 않기 때문에 이러한 테이블에 10 분의 1 초 내에 개별 쿼리를 발행 한 경우는 쿼리마다 결과가 동일합니다. 이에 대해 10 분의 1 초 이상 떨어져 발행 된 같은 테이블 또는 다른 테이블의 두 개의 별도의 쿼리는 데이터가 다른 스냅 샷에서 파생되므로 다른 결과가 나타날 가능성 수 있습니다.

트랜잭션 및 잠금 데이터가 수집되는 동안 InnoDB 는 일시적으로 중지해야하므로 이러한 테이블의 쿼리를 자주 수행하고 너무 다른 사용자 관점에서 성능에 부정적인 영향을 미칠 수 있습니다.

이 테이블에는 기밀 정보 (적어도 INNODB_LOCKS.LOCK_DATA 및 INNODB_TRX.TRX_QUERY )가 포함되어 있기 때문에 보안상의 이유로 거기에서 SELECT 허용되는 것은 PROCESS 권한을 가진 사용자 만입니다.

14.14.2.3.1 PROCESSLIST 데이터의 불일치 가능성

섹션 14.14.2.3 "InnoDB 트랜잭션과 잠금 테이블의 데이터 지속성과 일관성" 에 설명 된 바와 같이, InnoDB 트랜잭션과 잠금 테이블 ( INNODB_TRX , INNODB_LOCKS 및 INNODB_LOCK_WAITS )을 충족 ​​데이터는 자동으로 가져 왔습니다 " 시점 "스냅 샷을 제공하는 중간 버퍼에 저장됩니다. 같은 스냅 샷에서 쿼리 된 경우 데이터는 3 개의 모든 테이블에 걸쳐 일관성이 있습니다. 그러나 기반이되는 데이터가 매우 빠르게 변경되므로 마찬가지로 빠르게 변경되는 다른 데이터에 유사한 참조가 동기화되지 않을 수 있습니다. 따라서 InnoDB 트랜잭션과 잠금 테이블의 데이터를 PROCESSLIST 테이블의 데이터와 비교하는 경우주의하십시오. PROCESSLIST 테이블에서 데이터 잠금 및 트랜잭션에 대한 데이터와 동일한 스냅 샷에서 검색되지 않습니다. 하나의 SELECT (예를 들어, INNODB_TRX 과 PROCESSLIST 의 결합)을 발행 한 경우에도 일반적으로 이러한 테이블의 내용에 일관성이 없습니다. INNODB_TRX 이 PROCESSLIST 에는 존재하지 않는 행을 참조하거나 INNODB_TRX.TRX_QUERY 에 표시된 트랜잭션의 현재 실행중인 SQL 쿼리가 PROCESSLIST.INFO 의 것과는 다르다 할 수 있습니다.


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