14.13.12 다중 롤백 세그먼트에 의한 확장 성 향상
MySQL 5.5을 포함 InnoDB 1.1에서 병렬 트랜잭션 제한이 크게 확장 되었기 때문에 대용량 시스템에 영향을주고 있었다 InnoDB의 롤백 세그먼트 에서 병목 현상이 해소되었습니다. 이 제한은 어떤 데이터를 변경하는 병렬 트랜잭션에 적용됩니다. 읽기 전용 트랜잭션은 최대 수에 포함되지 않습니다.
하나의 롤백 세그먼트가 현재 128 개의 세그먼트로 분할되고, 그 각각에 쓰기를 실행하는 트랜잭션을 최대 1023 개 지원할 수 있으므로 총 약 128K 개의 병렬 트랜잭션이 지원됩니다. 원래 트랜잭션 제한은 1023이었습니다.
각 트랜잭션은 하나의 롤백 세그먼트에 할당 존속 기간은 그 롤백 세그먼트에 연결된 상태를 유지합니다. 이 확장은 확장 성 (병렬 트랜잭션의 수가 증가)과 성능 (각종 트랜잭션이 롤백 세그먼트에 액세스하는 경우 충돌의 감소)이 모두 향상됩니다.
이 기능을 이용하기 위해서는 새로운 데이터베이스 또는 테이블을 만들거나 뭔가를 재구성 할 필요가 없습니다. MySQL 5.1 이전에서 업그레이드하기 전에 또는 얼마 후 저속 종료 를 실행해야합니다. 저속 종료를 수행 한 후 처음으로 다시 시작하면 시스템 테이블 공간 에서 필요한 변경이 InnoDB에 의해 자동으로 이루어집니다.
워크로드가 1023 개 병렬 트랜잭션의 원래 한계에 의해 제한되지 않은 경우 구성 옵션 innodb_rollback_segments
을 설정함으로써 MySQL 인스턴스 또는 세션에서 사용되는 롤백 세그먼트의 수를 줄일 수 있습니다.
높은 트랜잭션 부하에서의 InnoDB의 성능 자세한 내용은 섹션 8.5.2 "InnoDB 트랜잭션 관리의 최적화" 를 참조하십시오.