AWS RDS Aurora for MySQL

Amazon Aurora MySQL 개요

Estimated reading: 1 minute 24 views

원본 문서: Overview of Amazon Aurora MySQL

AWS Documentation 상의 Aurora MySQL쪽 문서가 한글로 번역되어 있지 않기에, 해당 부분을 번역 및 정리하기 위해 만든 페이지 입니다. 전체 문서를 한번에 다 진행하기엔 시간이 많이 소요될 것으로 예상되어 우선 Overview of Aurora MySQL 부분 부터 진행합니다. Aurora MySQL v3의 특징을 정리하려다 다큐멘테이션 내용이 제일 근본일 것이라 생각되어 여기부터 시작하여 함인데, 막상 진행하다보니 기능적인 특징만 요약되어 있기로는 차라리 오로라 기능 소개 페이지가 더 상세한 것도 같습니다. 좌우간 최종적으론 ‘Working with Aurora MySQL’ 부분을 다 정리할 예정으로, 출발은 여기서부터 시작하겠습니다. 단, Aurora MySQL v2가 이미 서비스 기간 종료된 이후에 작성하기 시작한 글이라, v2와 관련된 항목들은 굳이 정리하지 않을 것입니다.


Amazon Aurora MySQL 성능 향상

Amazon Aurora는 고성능 상용 데이터베이스의 다양한 요구 사항을 지원하기 위한 성능 향상 기능들을 포함하고 있습니다.

빠른 삽입(insert)

빠른 삽입은 PK로 정렬되어 병렬로 삽입하는 작업을 가속화하며, 특히 LOAD DATAINSERT INTO ... SELECT ... 문에 효과가 있습니다. 빠른 삽입은 구문을 실행하는 동안 인덱스 탐색의 커서 위치를 캐시하여, 불필요하게 다시 인덱스를 탐색하는 것을 방지합니다.

빠른 삽입은 Aurora MySQL 버전 3.03.2 이상의 일반 InnoDB 테이블에서만 활성화됩니다. 이 최적화는 InnoDB 임시 테이블에서는 작동하지 않습니다. Aurora MySQL 버전 2의 모든 2.11 및 2.12 버전에서는 비활성화됩니다. 빠른 삽입 최적화는 적응형 해쉬 인덱스(Adaptive Hash Index) 최적화가 비활성화된 경우에만 작동합니다.

다음 메트릭을 모니터링하여 DB 클러스터에 대한 빠른 삽입의 효과를 확인할 수 있습니다:

  • aurora_fast_insert_cache_hits: 캐시된 커서가 성공적으로 검색되고 검증될 때 증가하는 카운터입니다.
  • aurora_fast_insert_cache_misses: 캐시된 커서가 더 이상 유효하지 않을 때 Aurora가 일반 인덱스 탐색을 수행할 때 증가하는 카운터입니다.

빠른 삽입 메트릭의 현재 값을 다음 명령을 사용하여 검색할 수 있습니다:

show global status like 'Aurora_fast_insert%';

결과는 다음과 같이 나타납니다:

+---------------------------------+-----------+
| Variable_name                   | Value     |
+---------------------------------+-----------+
| Aurora_fast_insert_cache_hits   | 3598300   |
| Aurora_fast_insert_cache_misses | 436401336 |
+---------------------------------+-----------+

Amazon Aurora MySQL과 공간 데이터

다음 목록은 주요 Aurora MySQL 공간 기능을 요약하고 MySQL의 공간 기능과 어떻게 대응하는지 설명합니다:

  • Aurora MySQL 버전 2는 MySQL 5.7과 동일한 공간 데이터 타입 및 공간 관계 함수를 지원합니다. 이 데이터 타입과 함수에 대한 자세한 정보는 MySQL 5.7 문서의 공간 데이터 타입공간 관계 함수에서 확인할 수 있습니다.
  • Aurora MySQL 버전 3은 MySQL 8.0과 동일한 공간 데이터 타입 및 공간 관계 함수를 지원합니다. 이 데이터 타입과 함수에 대한 자세한 정보는 MySQL 8.0 문서의 공간 데이터 타입공간 관계 함수에서 확인할 수 있습니다.
  • Aurora MySQL은 InnoDB 테이블에서 공간 인덱싱을 지원합니다. 공간 인덱싱은 공간 데이터를 조회할 때 대용량 데이터셋의 처리 성능을 높여줍니다. MySQL에서는 InnoDB 테이블을 위한 공간 인덱싱 기능이 MySQL 5.7과 8.0에서 제공됩니다.
    Aurora MySQL은 공간 쿼리의 성능을 높이기 위해 MySQL과는 다른 공간 인덱싱 전략을 사용합니다. Aurora의 공간 인덱스 구현은 공간 범위 스캔의 성능을 높이기 위해, B-tree 상의 공간 채움 곡선(space-filling curve)을 사용합니다.
참고
Aurora MySQL에서는 공간 참조 식별자(SRID)가 있는 열에 정의된 공간 인덱스를 가진 테이블에서 다른 트랜잭션이 업데이트를 선택한 영역에 삽입할 수 없습니다.

다음 데이터 정의 언어(DDL) 문은 공간 데이터 타입을 사용하는 열에 인덱스를 생성하는 데 지원됩니다.

테이블 생성

CREATE TABLE 문에서 SPATIAL INDEX 키워드를 사용하여 새 테이블의 열에 공간 인덱스를 추가할 수 있습니다. 다음은 예시입니다.

CREATE TABLE test (shape POLYGON NOT NULL, SPATIAL INDEX(shape));

테이블 변경

ALTER TABLE 문에서 SPATIAL INDEX 키워드를 사용하여 기존 테이블의 열에 공간 인덱스를 추가할 수 있습니다. 다음은 예시입니다.

ALTER TABLE test ADD SPATIAL INDEX(shape);

인덱스 생성

CREATE INDEX 문에서 SPATIAL 키워드를 사용하여 기존 테이블의 열에 공간 인덱스를 추가할 수 있습니다. 다음은 예시입니다.

CREATE SPATIAL INDEX shape_index ON test (shape);

Leave a Comment



이 문서 공유

Amazon Aurora MySQL 개요

링크 복사

CONTENTS