14.11 InnoDB와 온라인 DDL
온라인 DDL 기능은 MySQL 5.1 및 MySQL 5.5에서 사용 가능한 InnoDB Fast Index Creation 기능을 기반으로 구축되어 있습니다. InnoDB Fast Index Creation 기능은 테이블 복사 동작을하지 않도록 CREATE INDEX
와 DROP INDEX
를 최적화했습니다. MySQL 5.6에서 도입 된 온라인 DDL 기능은 다른 유형의 많은 ALTER TABLE
작업을 테이블 복사 DDL 이 진행중인 DML 작업 블록화 또는 둘 모두를 방지하기 위해 확장하고 있습니다.
온라인 DDL 기능에는 다음과 같은 장점이 있습니다.
인덱스와 컬럼 정의를 변경할 때마다 테이블을 몇 분 또는 몇 시간 동안 사용할 수 없게 할 현실적이지 못하다 바쁜 프로덕션 환경에서의 응답 성 및 가용성을 향상시킵니다.
테이블에 대한 액세스를 완전히 차단하거나 (
LOCK=EXCLUSIVE
절) 쿼리를 허용하지만 DML은 허용하지 않거나 (LOCK=SHARED
절) 또는 테이블에 전체 쿼리 및 DML 액세스를 허용하거나 (LOCK=NONE
절) 여부를 선택하여 DDL 작업시 성능과 병렬의 균형을 조정할 수 있습니다.LOCK
절을 생략하거나LOCK=DEFAULT
를 지정하면, MySQL은 작업의 종류에 따라 가능한 한 높은 병렬성을 허용합니다.테이블의 새 복사본을 만드는 것이 아니라, 가능한 경우는 적절한 변경을 수행하여 테이블의 복사 및 모든 보조 인덱스의 재구성을위한 디스크 공간 사용 및 I / O 오버 헤드 임시 적인 증가를 방지 할 수 있습니다.
MySQL 클러스터 NDB
스토리지 엔진은 온라인 테이블 스키마 변경도 지원하고 있습니다 만, InnoDB
의 온라인 작업에 사용되는 것과 호환되지 않는 독자적인 구문을 사용합니다. 자세한 내용은 섹션 13.1.7.2 "MySQL Cluster에서 ALTER TABLE 온라인 작업" 을 참조하십시오.