tencent cloud

피드백

FAST DDL

마지막 업데이트 시간:2022-03-02 21:50:32

    기능 소개

    이 기능은 시간이 많이 소요되는 2단계 인덱스 생성 프로세스를 최적화합니다. 이 기능을 활성화하면 멀티 스레드 동시성을 사용하여 2단계 인덱스 데이터를 외부적으로 정렬하고 flush bulk loading 단계에서 flush list의 잠금 작업을 최적화하여 CREATE INDEX 소요시간과 동시 DML에 대한 영향을 효과적으로 줄입니다.

    지원 버전

    • 커널 버전 MySQL 8.0 20210330 이상
    • 커널 버전 MySQL 5.7 20210331 이상

      적용 시나리오

      데이터베이스는 DDL 작업을 자주 수행하며, 다음 예시와 같은 DDL 관련 문제가 자주 발생합니다.
    • 인덱싱이 인스턴스 지터를 유발하고 정상적인 비즈니스 읽기 및 쓰기에 영향을 미치는 이유는 무엇입니까?
    • 1GB 미만의 테이블에 대해 DDL을 실행하는 데 때때로 10분 이상 걸리는 이유는 무엇입니까?
    • 임시 테이블을 사용하는 연결이 종료될 때 인스턴스 지터가 발생하는 이유는 무엇입니까?

    TXSQL 커널 팀은 위와 같은 공통적인 문제에 대응하여 flush bulk loading 단계에서 flush list의 잠금 작업을 최적화하였으며, CREATE INDEX의 소요시간, 동시 DML에 대한 영향 및 DDL 작업의 영향을 줄였습니다.

    성능 데이터

    sysbench 테스트는 20억 행의 데이터를 가져왔고 데이터량은 약 453GB이며 FAST DDL 기능이 활성화되어 있습니다.

    mysql> set global innodb_fast_ddl=ON;
    Query OK, 0 rows affected (0.00 sec)
    

    전원이 켜질 때까지 4395초가 소요되었으며, 전원이 켜진 후 2455초가 소요되었습니다.

    사용 설명

    이 기능은 innodb_fast_ddl 매개변수로 활성화/비활성화할 수 있습니다.
    innodb_parallel_merge_threads 매개변수는 외부 동시 정렬 프로세스에 사용되는 동시 스레드 수 제어에 사용되며, 기본값은 8, 최댓값은 32입니다.

    매개변수 이름 동적 유형 기본값 매개변수 값 범위 설명
    innodb_fast_ddl Yes bool OFF {ON,OFF} FAST DDL 활성화/비활성화
    innodb_parallel_merge_threads Yes Integer 8 1 - 32 merge sort 시 사용되는 동시 스레드 수
    설명:

    사용자는 현재 상기 매개 변수의 매개 변수 값을 직접 수정할 수 없습니다. 만약 수정하려면 작업 명세서 제출 에서 수정할 수 있습니다.

    문의하기

    고객의 업무에 전용 서비스를 제공해드립니다.

    기술 지원

    더 많은 도움이 필요하시면, 티켓을 통해 연락 바랍니다. 티켓 서비스는 연중무휴 24시간 제공됩니다.

    연중무휴 24시간 전화 지원