14.11.3 온라인 DDL의 SQL 구문
일반적으로 InnoDB
테이블에 ALTER TABLE
문을 사용하는 경우, 온라인 DDL 을 활성화하기 위해 특별한 것을 할 필요가 없습니다. 내부에서 수행 할 수있는 병렬 DML을 허용할지 또는 둘 모두의 DDL 작업의 종류는 표 14.5 "DDL 작업의 온라인 상태의 요약" 을 참조하십시오. 일부 종류는 구성 설정 또는 ALTER TABLE
어구의 특정 조합이 필요합니다.
ALTER TABLE
문 LOCK
및 ALGORITHM
절을 사용하여 특정 온라인 DDL 작업의 다양한 측면을 제어 할 수 있습니다. 이 어구는 문 마지막으로 나오는 테이블과 컬럼의 지정은 쉼표로 구분됩니다. LOCK
절은 테이블에 병렬 액세스의 정도를 조정하는 데 도움이됩니다. ALGORITHM
절은 주로 성능 비교를 목적으로하고 있으며, 기존의 DDL 코드에서 문제가 발생한 경우 이전 테이블 복사 동작으로 대체해도 사용됩니다. 예 :
테이블의 읽기, 쓰기, 또는 둘 다 잘못 불가능 해 버리는 일이 없도록하려면
ALTER TABLE
문LOCK=NONE
(읽기와 쓰기를 모두 허용)과LOCK=SHARED
(읽기 허용) 등의 어구를 지정할 수 있습니다. 요청한 레벨의 병렬성을 사용할 수없는 경우 작업이 즉시 중지합니다.성능을 비교하려면
old_alter_table
구성 옵션을 설정하는 대신 하나의 문을ALGORITHM=INPLACE
에서 또 하나의 문을ALGORITHM=COPY
에서 실행할 수 있습니다.테이블을 복사 한
ALTER TABLE
을 실행하여 서버가 결합되어 버릴 가능성을 없애려면, 적절한 메커니즘을 사용할 수 없으면 문이 즉시 중지하도록ALGORITHM=INPLACE
를 포함 할 수 있습니다. 현재 위치에서 실행할 수 또는 수없는 DDL 작업 목록은 표 14.5 "DDL 작업의 온라인 상태의 요약" 을 참조하십시오.
LOCK
절 자세한 내용은 섹션 14.11.2 "온라인 DDL의 성능과 동시성 고려 사항" 을 참조하십시오. 온라인 DDL 사용의 완전한 예는 섹션 14.11.5 "온라인 DDL의 예" 를 참조하십시오.