10.x 브랜치가 시작된 지 10년 만에 MariaDB 11.0.0이 출시되어 몇 가지 중요한 개선 사항과 호환성 문제가 해결되었습니다. 현재 이 브랜치는 알파 릴리스 상태이며, 안정화 후 정식 출시될 예정입니다. 호환성 문제가 해결된 다음 주요 브랜치인 MariaDB 12는 최소 10년(2032년) 후에 출시될 예정입니다.
MariaDB 프로젝트는 MySQL을 기반으로 개발되었으며, 가능한 한 하위 호환성을 유지하면서 추가 스토리지 엔진과 고급 기능을 통합합니다. MariaDB 개발은 독립적인 MariaDB 재단에서 감독하며, 특정 벤더에 종속되지 않고 개방적이고 투명한 개발 프로세스를 따릅니다. MariaDB는 많은 배포판에서 MySQL을 대체하는 데이터베이스로 제공됩니다. Linux (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian)이며 위키피디아, 구글 클라우드 SQL, 님버즈와 같은 대규모 프로젝트에 구현되었습니다.
MariaDB 11 브랜치의 주요 개선 사항은 쿼리 최적화 프로그램이 새로운 비용 모델로 전환된 것입니다. 이 모델은 각 쿼리 실행 계획의 가중치를 더욱 정확하게 예측합니다. 새로운 모델은 일부 성능 병목 현상을 해결하는 데 도움이 되지만, 모든 시나리오에서 최적의 성능을 제공하지는 못하고 일부 쿼리의 속도가 느려질 수 있으므로, 사용자 여러분은 테스트에 참여하고 문제 발생 시 개발자에게 알려주시기 바랍니다.
이전에 사용된 모델은 최적의 인덱스를 찾는 데는 효과적이었지만, 테이블 스캔, 인덱스 스캔 또는 범위 선택 작업의 적용성에 문제가 있었습니다. 새로운 모델은 스토리지 엔진 작업의 기본 가중치를 변경하여 이러한 단점을 해결했습니다. 순차 레코드 스캔과 같은 디스크 종속 작업의 성능을 평가할 때, 이제 데이터가 초당 400MB의 읽기 속도를 제공하는 SSD 드라이브에 저장되어 있다고 가정합니다. 또한, 다른 옵티마이저 가중치 매개변수도 조정되어 하위 쿼리에서 ORDER BY/GROUP BY 작업에 인덱스를 사용할 수 있도록 구현하고 매우 작은 테이블 작업의 속도를 높일 수 있었습니다.
새로운 가중치 모델을 사용하면 다음과 같은 상황에서 더욱 최적의 쿼리 실행 계획을 선택할 수 있습니다.
- 2개 이상의 테이블에 걸쳐 있는 쿼리를 사용하는 경우.
- 동일한 값이 많이 포함된 인덱스가 있는 경우.
- 표의 10% 이상을 포함하는 범위를 사용하는 경우.
- 모든 열이 인덱싱되지 않은 복잡한 쿼리가 있는 경우.
- 서로 다른 저장 엔진을 포함하는 쿼리가 사용되는 경우(예: 단일 쿼리가 InnoDB 및 메모리 엔진의 테이블에 액세스하는 경우).
- FORCE INDEX를 사용하여 쿼리 계획을 개선하는 경우.
- "ANALYZE TABLE"을 사용하면 쿼리 계획이 악화되는 경우.
- 쿼리가 다수의 파생 테이블(다수의 중첩 SELECT)에 걸쳐 있는 경우.
- 인덱스를 한정하는 ORDER BY 또는 GROUP BY 표현식을 사용하는 경우.
MariaDB 11 브랜치의 주요 호환성 문제:
- SUPER 권한으로는 더 이상 별도로 설정된 권한이 있는 작업을 수행할 수 없습니다. 예를 들어, 바이너리 로그 형식을 변경하려면 BINLOG ADMIN 권한이 필요합니다.
- InnoDB의 변경 버퍼 구현이 제거되었습니다.
- innodb_flush_method와 innodb_file_per_table은 더 이상 사용되지 않습니다.
- mysql* 이름에 대한 지원이 더 이상 제공되지 않습니다.
- explicit_defaults_for_timestamp를 0으로 설정하는 것은 더 이상 사용되지 않습니다.
- MySQL과의 호환성을 위해 심볼릭 링크가 별도의 패키지로 이동되었습니다.
- innodb_undo_tablespaces 매개변수의 기본값이 3으로 변경되었습니다.
출처 : opennet.ru
