Amazon Relational Database Service
사용 설명서 (API 버전 2014-10-31)

빠른 DDL을 이용하는 Amazon Aurora에서의 테이블 수정

MySQL에서 많은 데이터 정의 언어(DDL) 작업이 상당한 성능 임팩트를 가집니다. 성능 임팩트는 최근의 온라인 DDL 개선에도 불구하고 발생합니다.

예를 들어 ALTER TABLE 작업을 이용해 열을 테이블에 추가한다고 가정해 보겠습니다. 지정된 알고리즘에 따라 이 작업은 다음을 포함할 수 있습니다.

  • 테이블의 전체 사본 생성

  • 동시에 발생하는 데이터 조작 언어(DML) 작업을 처리하는 임시 테이블 생성

  • 테이블용의 모든 인덱스 리빌드

  • 동시에 발생하는 DML 변경 사항을 적용하면서 테이블 록 적용

  • 동시에 발생하는 DML 처리량 표시

In Amazon Aurora에서 빠른 DDL을 이용해 ALTER TABLE 작업을 거의 동시에 실행할 수 있습니다. 이 작업은 테이블을 복사하거나 다른 DML 명령문에 영향을 거의 주지 않고 완료됩니다. 이 작업은 테이블 복사를 위해 임시 스토리지를 사용하지 않으므로 스몰 인스턴스 유형의 라지 테이블에 대해서도 DDL 문을 유용하게 만듭니다.

참고

빠른 DDL은 Aurora 버저 1.12 이상에서 사용할 수 있습니다. Aurora 버전에 대한 자세한 내용은 Amazon Aurora MySQL 데이터베이스 엔진 업데이트 섹션을 참조하십시오.

제한

현재 빠른 DDL에는 다음과 같은 제한 사항이 있습니다.

  • 빠른 DDL은 기존 테이블 끝까지 기본값 없이 null이 허용된 열 추가만 지원합니다.

  • 빠른 DDL은 분할된 테이블을 지원하지 않습니다.

  • 빠른 DDL은 중복 행 형식을 사용하는 InnoDB 테이블을 지원하지 않습니다.

  • DDL 작업에 대한 최대 가능한 레코드 크기가 너무 크면 빠른 DDL이 사용되지 않습니다. 레코드 크기가 페이지 크기의 절반보다 큰 경우 해당 레코드가 너무 큽니다. 레코드의 최대 크기는 모든 열의 최대 크기를 더하여 계산합니다. 가변 크기 열의 경우에는 InnoDB 표준에 따라 extern 바이트가 계산에 포함되지 않습니다.

    참고

    최대 레코드 크기 확인이 Aurora 1.15 버전에 추가되었습니다.

구문

ALTER TABLE tbl_name ADD COLUMN col_name column_definition

옵션

이 명령문의 옵션은 다음과 같습니다.

  • tbl_name - 수정할 테이블 이름.

  • col_name - 추가할 열 이름.

  • col_definition - 추가할 열 정의.

    참고

    기본값 없이 null이 허용된 열 정의를 지정해야 합니다. 그렇지 않으면 빠른 DLL을 사용할 수 없습니다.

이 페이지에서: