MySQL 8.0.46 릴리스 노트
MySQL 8.0.46 Community Server 릴리스 노트를 한국어로 번역하고, DBA가 참고해야 할 핵심 내용을 함께 정리하였습니다.
DBA를 위한 핵심 내용
MySQL 8.0.46은 8.0 계열의 마지막 패치 성격이 강한 릴리스입니다. Oracle Cloud 문서 기준으로 MySQL 8.0은 2026년 4월 8.0.46에서 EOL에 도달하며, 남은 8.0 환경은 8.4 LTS 전환 계획을 세워야 합니다. 따라서 이 버전은 “새 기능 도입”보다 8.0 운영 환경의 최종 안정화와 8.4 전환 전 점검 기준선으로 보는 것이 적절합니다. (Oracle MySQL Server Versions)
- Optimizer 관련 수정 중에는 세미 조인과 materialization을 사용하는 쿼리가 누락된 조건 때문에 잘못된 결과를 반환할 수 있던 문제가 포함되어 있습니다. 단순 성능 문제가 아니라 결과 정확성에 관한 수정이므로, 관련 패턴의 서브쿼리·세미 조인 쿼리를 사용하는 서비스는 업그레이드 전후 실행 계획과 결과 비교를 해두는 것이 좋습니다.
- InnoDB에서는 대용량 테이블의 FTS 인덱스 구성 중 메모리 사용 최적화, 다중 값 인덱스, 병렬 리더, undo 테이블스페이스 truncate 관련 수정이 포함되어 있습니다. 특히
--innodb_parallel_read_threads값을 높게 둔 상태에서CREATE INDEX가 디스크 공간 고갈을 일으킬 수 있던 문제가 수정되었으므로, 대용량 인덱스 생성 작업을 병렬화해 운영하던 환경에서는 눈여겨볼 만합니다. - 패키징 측면에서는 번들 OpenSSL이 3.5.5로, 포함
zlib이 1.3.2로 올라갔습니다. OpenSSL 3.5.5에는 PKCS#12 MAC 검증 및 CMSAuthEnvelopedData처리 관련 보안 수정이 포함되어 있으므로, MySQL 패키지에 번들 OpenSSL을 사용하는 플랫폼에서는 보안 패치 성격도 함께 봐야 합니다. (OpenSSL 3.5 변경 내역) - SQL 파서가 큰
IN절이 많은 대형 쿼리를 파싱할 때 과도한 메모리를 소비하던 문제도 수정되었습니다. 애플리케이션에서 대량 ID 목록을IN (...)형태로 넘기는 패턴이 있다면, 메모리 사용량 개선 효과를 기대할 수 있습니다. - 별도의 웹 검색에서는 이 버전 자체에 대해 릴리스노트에 없는 광범위한 업그레이드 장애나 회귀 이슈가 널리 보고된 정황은 확인하지 못했습니다. 다만 8.0.46이 8.0 계열의 종료 지점이라는 점이 더 중요하므로, 신규 운영 표준은 8.0 유지가 아니라 8.4 LTS 전환 검증으로 잡는 것이 안전합니다.
Audit Log 관련 사항
-
특정 gzip 파일 처리와 관련된 문제가 수정되었습니다. MySQL Server는
.gz헤더 검사를 완화하도록 업데이트되어, 일반 gzip 파일을 처리할 수 있습니다. 다음과 유사한 오류가 반환되었습니다:Invalid audit log file content(Bug #38980223)
컴파일 관련 사항
- 포함된
zlib라이브러리가 버전 1.3.2로 업그레이드되었습니다. (Bug #38987448)
SQL 함수 및 연산자 관련 사항
DEFAULT()함수와 관련된 문제가 수정되었습니다. (Bug #39057054)
InnoDB 관련 사항
- 큰 테이블에 대한 FTS 인덱스 구성 중 메모리 사용량이 최적화되었습니다. (Bug #39040226)
- 다중 값 인덱스와 관련된 문제가 수정되었습니다. (Bug #39040128)
- 병렬 리더의 문제가 수정되었습니다. (Bug #39033858)
- MySQL truncate undo 작업(purge thread)이 undo 테이블스페이스를 truncate하려고 할 때
undo_{space_number}_trunc.log파일을 제거하지 않았습니다. (Bug #38871808) dict_sdi_create_idx_in_mem함수가 예상과 다른 순서로 컬럼을 추가했으며,compressed_len및uncompressed_len필드가 서로 바뀌어 있었습니다. (Bug #38810801)- 특정 상황에서
--innodb_parallel_read_threads에 높은 값을 지정하여CREATE INDEX를 실행하면 디스크 공간이 가득 차서 디스크 공간 고갈로 이어질 수 있었습니다. (Bug #38370155) TRUNCATE TABLE과 관련된 문제가 수정되었습니다. (Bug #38169053)- 특정 상황에서 가능한 최대 인덱스 레코드 크기를 계산할 때 assertion failure가 발생할 수 있었습니다. (Bug #85060, Bug #25579578)
JSON 관련 사항
- JSON 파일 처리와 관련된 문제가 수정되었습니다. (Bug #39000847)
Optimizer 관련 사항
-
최적화된 prepared DELETE 및 UPDATE 문과 관련된 문제가 수정되었습니다. (Bug #39071552)
-
쿼리 관리와 관련된 문제가 수정되었습니다. (Bug #38928287)
-
메모리 관리와 관련된 문제가 수정되었습니다. (Bug #38573278)
-
구체화와 함께 세미 조인을 사용하는 쿼리는 누락된 조건으로 인해 잘못된 결과를 반환할 수 있습니다.
Alibaba의 Jingqi Tian 및 팀에 감사드립니다. (Bug #38110792)
-
Optimizer의 SQL 플래너와 관련된 문제가 수정되었습니다. (Bug #35634700)
-
explain expanded 쿼리에서 조인 순서 힌트가 유효한 문법으로 출력되지 않았습니다.
기여해 주신 Kaiwang Chen에게 감사드립니다. (Bug #116084, Bug #37053765)
-
get_quick_record_count()에서 범위를 빌드할 때 const 테이블 및 이전에 조인된 테이블의 조건이 일관되게 고려되지 않았습니다. 이로 인해 특히 범위 조건자가 const 테이블 또는 이전에 조인된 테이블의 값에 의존할 때 최적이 아니거나 잘못된 범위 추정값이 발생할 수 있었습니다.기여해 주신 Xingyu Yang에게 감사드립니다. (Bug #112737, Bug #35912840)
패키징 관련 사항
- OpenSSL 라이브러리가 번들로 제공되는 플랫폼의 경우, MySQL Server에 링크된 OpenSSL 라이브러리가 버전 3.5.5로 업데이트되었습니다. 자세한 내용은 OpenSSL 3.5 Series Release Notes를 참조하십시오. (Bug #38867109, WL #17209)
X 플러그인 관련 사항
- 시스템 변수
caching_sha2_password_digest_rounds를 X Protocol을 사용하여 기본값이 아닌 값으로 설정할 수 없었습니다. (Bug #36402455)
수정된 버그
-
Information Schema 권한과 관련된 문제가 수정되었습니다. (Bug #35243416, Bug #37387633)
-
SQL 파서는 큰
IN절이 많이 포함된 매우 큰 쿼리를 파싱할 때 많은 양의 메모리를 소비했습니다.이 릴리스부터 SQL 파서의 메모리 관리가 개선되었습니다. (Bug #105004, Bug #33390851)