이 기능은 시간이 많이 소요되는 2단계 인덱스 생성 프로세스를 최적화합니다. 이 기능을 활성화하면 멀티 스레드 동시성을 사용하여 2단계 인덱스 데이터를 외부적으로 정렬하고 flush bulk loading 단계에서 flush list의 잠금 작업을 최적화하여 CREATE INDEX 소요시간과 동시 DML에 대한 영향을 효과적으로 줄입니다.
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 시 사용되는 동시 스레드 수 |
설명:사용자는 현재 상기 매개 변수의 매개 변수 값을 직접 수정할 수 없습니다. 만약 수정하려면 작업 명세서 제출 에서 수정할 수 있습니다.
문제 해결에 도움이 되었나요?