728x90
MySQL 9.2.0 (2025-01-21, Innovation Release)
MySQL :: MySQL 9.2 Release Notes :: Changes in MySQL 9.2.0 (2025-01-21, Innovation Release)
MySQL 9.2 Release Notes / Changes in MySQL 9.2.0 (2025-01-21, Innovation Release) Changes in MySQL 9.2.0 (2025-01-21, Innovation Release) Process memory usage grew when the libmysqlclient API user tried to cache and reuse a prepared statement, preparin
dev.mysql.com
MySQL 9.2.0 주요 업데이트
계정 및 권한 관련
- DROP USER 이후 데이터베이스 캐시가 제대로 비워지지 않던 문제 해결
- 새 권한 CREATE_SPATIAL_REFERENCE_SYSTEM 추가
→ 기존에는 SUPER 권한 필요했지만, 이제 전용 권한으로 분리됨 - 비밀번호 유효성 검사 오류 일부 수정
컴포넌트 관련
- Group Replication Resource Manager 추가 (EE 전용)
→ 세컨더리 노드의 지연 시간과 리소스 사용량 감시 후 자동 퇴출 - Option Tracker 개선
→ 일부 설치 순서 문제나 병렬 설치 중 서버 중단 문제 해결
컴파일 및 플랫폼 관련
- macOS: Homebrew Clang 지원, 중복 경고 제거, 빌드 오류 수정
- Windows: Visual Studio 2022 경고 제거, WITH_SASL 비활성화
- Clang 19 / GCC 14 / Fedora 40 / Solaris 11.4 지원 개선
- Libedit 버전: 20240808-3.1로 업그레이드
SQL 및 기능 관련
- BINLOG 키워드 → 이제 인용부호 없는 라벨로 사용 금지 (SQL 예약어로 강제됨)
- FLUSH PRIVILEGES 문 → Deprecated (추후 제거 예정)
- Version Tokens Plugin → Deprecated
옵티마이저 개선
- EXPLAIN FORMAT=JSON → lookup_references 정보 추가됨
- 일부 해시 조인 최적화
- WHERE 절 내 집계 함수 처리 오류 수정
Performance Schema 개선
- 복제 스레드의 사용자 이름이 system user로 표기되도록 수정
- 메타데이터 락 유형 변경 시 반영되지 않던 문제 해결
인증 관련
- AUTHENTICATION_POLICY_ADMIN 관련 정책 오류 수정
- OpenID Connect 플러그인 → Option Tracker에 등록됨
JavaScript 저장 프로시저(MLE) (EE 전용)
- ENUM, SET 타입 지원
- CREATE LIBRARY, DROP LIBRARY 문으로 JS 라이브러리 관리 가능
- JS에서 MySQL 함수, 트랜잭션, 사용자 변수 직접 호출 가능
InnoDB 관련 핵심 개선사항
- 복구 시 IBUF 병합 완전히 비활성화 (속도 및 안정성 개선)
- 공간 인덱스 관련 버그 수정 및 일부 인덱스 손상 이슈 해결
- 고성능 환경에서의 I/O 처리 성능 향상
- ALTER TABLE 관련 동시성 버그 및 데이터 손실 이슈 해결
- 128코어 이상 환경에서 CPU 사용률 집계 오류 수정
복제 및 Group Replication
- 대용량 트랜잭션 처리 중 STOP REPLICA 후 처리되지 않던 문제 수정
- Primary 노드 재합류 시 다중 노드 충돌로 인한 무한 대기 상태 해결
- View Change 이벤트 주변에서는 commit order 보장 안될 수 있음 (비충돌 트랜잭션에 한해)
기타 주요 버그 수정
- ALTER TABLE 중 동시 purge로 인한 데이터 손실 가능성 제거
- UNION 과다 메모리 사용 문제 개선
- mysqlslap, mysqldump 사용 중 비정상 동작 다수 수정
- WITH ROLLUP, OFFSET, VECTOR, YEAR + BOOL 등 타입 처리 오류 다수 해결
요약해서,
- 보안과 권한 관리 강화
- macOS/Windows/Clang 등 플랫폼 호환성 향상
- 복제 및 InnoDB 안정성 개선
- MLE 기능 확장 (EE 대상)
- 다양한 성능 개선과 버그 수정
MySQL 9.1.0 주요 업데이트
1. 원자적 DDL 완전 지원
- CREATE DATABASE 및 DROP DATABASE가 이제 완전한 원자성을 보장.
- 실패하거나 충돌이 발생해도 파일 시스템과 데이터사전의 상태가 일치함.
2. 보안 및 인증 개선
- Windows Hello 기반 WebAuthn 지원 (Enterprise Edition): 생체 인증 및 패스키 인증 가능.
- authentication_openid_connect 플러그인으로 OpenID Connect 인증 지원.
- 키링 구성 요소에서 AES-ECB 제거 → 안전한 암호화 방식 유지.
3. 옵션 추적 기능 도입 (Option Tracker)
- 시스템 및 플러그인에서 사용하는 옵션들의 사용 여부 및 사용 시각을 기록.
- 성능 스키마와 통합되어 시각화 가능 (Enterprise 기능).
4. 트리거 처리 성능 향상
- SELECT 쿼리 등에서 트리거를 파싱하지 않음 → 불필요한 리소스 사용 감소.
- 새로운 시스템 변수 table_open_cache_triggers 도입.
5. 벡터 타입 및 JavaScript 저장 프로그램 개선
- JavaScript 저장 프로시저에서 VECTOR 타입 완전 지원.
- CREATE LIBRARY, USING 절로 JavaScript 모듈 재사용 가능.
- 저장 JavaScript 내 SQL 실행 결과가 Performance Schema에 기록됨.
6. 성능 스키마 및 복제 메트릭 강화
- 복제 지연 시간, 리소스 사용량, 쓰기 순서 보존 여부 추적 가능.
- 새로운 상태 테이블 도입: replication_applier_metrics, replication_applier_progress_by_worker.
7. OpenTelemetry 원격 측정 로그 지원 (Enterprise 기능)
- 로그를 OTLP 포맷으로 내보내 외부 백엔드에서 분석 가능.
- 커스텀 로깅 구성 요소 개발도 가능.
8. 구성 및 빌드 환경 개선
- macOS, Windows, Ubuntu, Fedora, Solaris 등 다양한 OS에서 컴파일 호환성 향상.
- 번들 라이브러리 업데이트: curl 8.11.1, zlib 1.3.1, libedit, OpenSSL 3.0.15 등.
9. 인덱스 및 쿼리 최적화
- 다중값 인덱스(MVIC) 개선 및 커버링 인덱스 버그 수정.
- EXPLAIN FORMAT=JSON 및 TREE 형식에 더 풍부한 정보 추가.
- GROUP BY ROLLUP, SUM(DISTINCT ...), UNION 관련 불일치 문제 해결.
10. 버그 수정 및 안정성 강화
- 수백 건의 버그 수정: 서버 충돌, 메모리 누수, 잘못된 정렬 처리, 준비된 명령문 이슈 등.
- 특히 InnoDB, FTS, Replication, Group Replication 관련 문제 다수 해결.
9.1.0 (기능 도입 중심) | 9.2.0 (기능 확장 + 안정화) | 9.2에서 더 좋아진 점 | |
DDL 처리 | 원자적 DDL 지원 시작 (CREATE/DROP DATABASE) | 버그 수정 및 안정성 강화 | 실패 시 디렉터리 정리 문제 해결 |
보안 및 인증 | WebAuthn (Windows Hello), OpenID Connect 지원 시작 | 인증 정책 플러그인 오류 수정, 플러그인 Option Tracker 등록 | 신뢰성 및 관리 기능 강화 |
옵션 추적 (Option Tracker) | 최초 도입, 사용 시각 기록, EE 기능 | 설치 순서 문제 해결, 병렬 설치 충돌 해결 | 실사용자 환경에서 문제 해결 |
트리거 처리 | SELECT 시 파싱 안 함, 리소스 절감 | 트리거 캐시 최적화 + 관련 변수(table_open_cache_triggers) 도입 | SELECT 성능 향상 + 메모리 관리 |
벡터 타입 / JS 프로시저 (MLE) | VECTOR 타입 완전 지원, JS 라이브러리 도입 | ENUM/SET 타입 추가 지원, 트랜잭션 API, 사용자 변수 접근 추가 | 실제 JS 개발 생산성 증가 |
복제/Group Replication | 새로운 지표 제공 (지연, 순서 등), 상태 테이블 도입 | 리소스 초과 자동 퇴출, STOP REPLICA 중단 문제 해결 | 장애 복구 능력 강화 |
OpenTelemetry | OTLP 포맷 로그 전송 도입 (EE) | 실제 OTLP 통합 버그 해결, 안정화 | 외부 분석 연동이 가능해짐 |
컴파일/플랫폼 | macOS, Windows, Ubuntu 등 지원 확장 | Homebrew Clang, GCC 14, Clang 19, Fedora 40, Solaris 11.4 추가 대응 | 최신 환경 대응력 향상 |
인덱스/쿼리/옵티마이저 | MVIC, 커버링 인덱스, ROLLUP 등 개선 시작 | EXPLAIN FORMAT=JSON 강화, 집계 함수 처리 오류 다수 수정 | 진단 도구 정확도 + 쿼리 신뢰도 향상 |
버그 및 안정성 | 대규모 버그 수정: InnoDB, FTS, 복제 등 | ALTER 중 purge, UNION 메모리, DROP USER 캐시, mysqlslap 등 실질적 개선 | 실서비스 중 장애 가능성 낮아짐 |
# 좋아진 점
1. DDL 완전 원자화
- 이전: CREATE DATABASE나 DROP DATABASE가 실패하면 폴더는 생기거나 남는데 DB는 없어서 수동으로 정리해야 했습니다.
- 지금: 이제는 완전 원자적으로 처리되어, 실패해도 시스템이 자동 정리해줘서 안정성과 신뢰성이 높아졌습니다.
2. 트리거 성능 향상
- 이전: SELECT만 해도 트리거를 항상 읽어서 불필요한 리소스를 썼습니다.
- 지금: 이제는 데이터 변경(INSERT/UPDATE/DELETE) 때만 트리거를 읽어서, 쿼리 성능이 빨라졌습니다.
728x90
'카카오테크 부트캠프 > 프로젝트' 카테고리의 다른 글
EC2에서 크롬 자동 로그인 이후 데이터 크롤링 트러블 슈팅 (0) | 2025.05.09 |
---|---|
백준 문제 데이터 크롤링 트러블슈팅 (0) | 2025.05.08 |
빅뱅 배포 도입 근거 (0) | 2025.04.29 |
클라우드 도입 근거 (0) | 2025.04.23 |
서비스 계획 문서 (0) | 2025.04.23 |