

# RDS for MariaDB에 대해 알려진 문제 및 제한 사항
<a name="CHAP_MariaDB.Limitations"></a>

다음 항목은 RDS for MariaDB를 사용할 때 알려진 문제 및 제한 사항입니다.

**참고**  
단, 이 목록이 전부는 아닙니다.

**Topics**
+ [Amazon RDS의 MariaDB 파일 크기 제한](#RDS_Limits.FileSize.MariaDB)
+ [InnoDB 예약어](#MariaDB.Concepts.InnodbDatabaseName)
+ [사용자 지정 포트](#MariaDB.Concepts.CustomPorts)
+ [성능 개선 도우미](#MariaDB.Concepts.PerformanceInsights)

## Amazon RDS의 MariaDB 파일 크기 제한
<a name="RDS_Limits.FileSize.MariaDB"></a>

MariaDB DB 인스턴스의 경우 InnoDB 테이블당 파일 테이블스페이스를 사용할 때 테이블의 최대 크기는 16TB입니다. 또한 이 제한은 시스템 테이블스페이스를 최대 16TB의 크기로 제한합니다. MariaDB DB 인스턴스에서는 테이블이 각각 자체 테이블스페이스에 들어 있는 InnoDB 테이블당 파일 테이블스페이스가 기본적으로 설정됩니다. 이 한도는 MariaDB DB 인스턴스의 최대 스토리지 한도와 관련이 없습니다. 스토리지 한도에 대한 자세한 내용은 [Amazon RDS DB 인스턴스 스토리지](CHAP_Storage.md) 섹션을 참조하세요.

애플리케이션에 따라 InnoDB 테이블당 파일 테이블스페이스 사용에 대한 장점과 단점은 서로 다릅니다. 애플리케이션에 가장 적합한 접근 방식을 확인하려면 MySQL 설명서의 [테이블당 파일 테이블스페이스](https://dev.mysql.com/doc/refman/5.7/en/innodb-file-per-table-tablespaces.html)를 참조하세요.

테이블을 최대 파일 크기로 늘리도록 허용하는 것은 권장하지 않습니다. 일반적으로 모범 사례는 성능 및 복구 시간을 향상할 수 있도록 데이터를 더 작은 테이블로 분할하는 것입니다.

대형 테이블을 여러 개의 작은 테이블로 분할하는 데 사용할 수 있는 한 가지 옵션으로는 파티셔닝이 있습니다. *파티셔닝*을 수행하면 사용자가 지정하는 규칙에 따라 라지 테이블의 일부가 개별 파일로 배포됩니다. 예를 들어, 트랜잭션을 날짜별로 저장하는 경우 파티셔닝을 사용하여 이전 트랜잭션을 개별 파일로 배포하는 파티셔닝 규칙을 생성할 수 있습니다. 이렇게 하면 애플리케이션에서 즉시 사용할 필요가 없는 이전 트랜잭션 데이터를 주기적으로 보관할 수 있습니다. 자세한 내용은 MySQL 설명서의 [파티셔닝](https://dev.mysql.com/doc/refman/5.7/en/partitioning.html)을 참조하세요.

**모든 InnoDB 테이블스페이스의 크기를 확인하려면**
+ 다음 SQL 명령을 사용하여 크기가 너무 커서 파티셔닝을 수행해야 하는 테이블이 있는지 확인합니다.
**참고**  
MariaDB 10.6 이상의 경우 이 쿼리는 InnoDB 시스템 테이블스페이스의 크기도 반환합니다.  
10.6 이전의 MariaDB 버전에서는 시스템 테이블을 쿼리하여 InnoDB 시스템 테이블스페이스의 크기를 확인할 수 없습니다. 이후 버전으로 업그레이드하는 것이 좋습니다.

  ```
  1. SELECT SPACE,NAME,ROUND((ALLOCATED_SIZE/1024/1024/1024), 2) 
  2. as "Tablespace Size (GB)"  
  3. FROM information_schema.INNODB_SYS_TABLESPACES ORDER BY 3 DESC;
  ```

**비 InnoDB 사용자 테이블의 크기를 확인하려면**
+ 다음 SQL 명령을 사용하여 비 InnoDB 사용자 테이블이 너무 큰지 확인합니다.

  ```
  SELECT TABLE_SCHEMA, TABLE_NAME, round(((DATA_LENGTH + INDEX_LENGTH+DATA_FREE)
  / 1024 / 1024/ 1024), 2) As "Approximate size (GB)" FROM information_schema.TABLES
  WHERE TABLE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema')
  and ENGINE<>'InnoDB';
  ```

**InnoDB 테이블당 파일 테이블스페이스를 활성화하는 방법**
+ DB 인스턴스의 파라미터 그룹에서 `innodb_file_per_table` 파라미터를 `1`로 설정합니다.

**InnoDB 테이블당 파일 테이블스페이스를 비활성화하는 방법**
+ DB 인스턴스의 파라미터 그룹에서 `innodb_file_per_table` 파라미터를 `0`로 설정합니다.

파라미터 그룹 업데이트에 대한 자세한 내용은 [Amazon RDS의 파라미터 그룹](USER_WorkingWithParamGroups.md)을(를) 참조하세요.

InnoDB 테이블당 파일 테이블스페이스를 활성화하거나 비활성화하면 `ALTER TABLE` 명령을 실행할 수 있습니다. 이 명령을 사용하여 전역 테이블스페이스에서 자체 테이블스페이스로 테이블을 이동할 수 있습니다. 또는 자체 테이블스페이스에서 전역 테이블스페이스로 테이블을 이동할 수 있습니다. 다음은 그 한 예입니다.

```
1. ALTER TABLE table_name ENGINE=InnoDB, ALGORITHM=COPY; 
```

## InnoDB 예약어
<a name="MariaDB.Concepts.InnodbDatabaseName"></a>

`InnoDB`는 RDS for MariaDB의 예약어입니다. MariaDB 데이터베이스에는 이 이름을 사용할 수 없습니다.

## 사용자 지정 포트
<a name="MariaDB.Concepts.CustomPorts"></a>

Amazon RDS는 MariaDB 엔진의 사용자 지정 포트 33060으로의 연결을 차단합니다. MariaDB 엔진에 사용할 다른 포트를 선택합니다.

## 성능 개선 도우미
<a name="MariaDB.Concepts.PerformanceInsights"></a>

MariaDB 커뮤니티에서 더 이상 InnoDB 카운터를 지원하지 않기 때문에 RDS for MariaDB 버전 10.11용 성능 개선 도우미에는 InnoDB 카운터가 표시되지 않습니다.