기능 소개
해당 기능은 보조 인덱스 생성 과정의 소요 시간을 최적화합니다. 기능을 활성화하면 다중 스레드를 통해 보조 인덱스 데이터에 대한 외부 정렬을 동시에 수행하며, 플러시 벌크 로딩 단계에서 플러시 리스트에 대한 잠금 작업을 최적화하여 CREATE INDEX의 소요 시간과 동시 DML에 미치는 영향을 효과적으로 줄입니다.
지원 버전
커널 버전 MySQL 8.0 20210330 이상.
커널 버전 MySQL 5.7 20210331 이상.
적용 시나리오
데이터베이스에서는 DDL 작업을 자주 수행하며, 다음과 같은 DDL 관련 문제가 자주 발생합니다:
왜 인덱스를 추가하면 인스턴스 불안정이 발생하고 정상적인 비즈니스 읽기 및 쓰기에 영향을 미칠까요?
왜 1GB 미만의 테이블에서 DDL을 실행하는 데 가끔 10분 이상 소요될까요?
왜 임시 테이블을 사용한 연결이 종료될 때 인스턴스 불안정을 유발할까요?
이상의 일반적인 문제점들을 해결하기 위해 TXSQL 커널 팀은 다양한 시나리오에서의 심층 분석 및 테스트를 통해 플러시 벌크 로딩 단계에서의 플러시 리스트 잠금 작업을 최적화하였습니다. 이를 통해 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초.
사용 설명
공식 MySQL 8.0.30 이전 버전에서는 매개변수 innodb_fast_ddl을 통해 해당 기능을 활성화 또는 비활성화할 수 있습니다. Tencent Cloud 데이터베이스 MySQL 콘솔에서 매개변수 수정을 지원하는 커널 버전은 다음과 같습니다.
MySQL 8.0 20210330부터 20220831까지.
MySQL5.7 20210331 이상.
|
innodb_fast_ddl | Yes | bool | OFF | [ON,OFF] | FAST DDL 활성화 또는 비활성화 |
공식 MySQL 8.0.30 및 이후 버전은 기본적으로 해당 기능을 지원합니다. 향후 콘솔에서 parallel ddl 매개변수를 개방할 예정입니다.