MySQL 8.4.3 and 9.1.0: Major Performance Gains Revealed
Percona 에서는 항상 성능을 최우선으로 고려해 왔으며, 최근 MySQL의 개발 동향에 대해 우려를 표명해 왔습니다. 특히 Marco Tusa 의 통찰력 있는 블로그 게시물인 “Sakila, Where Are You Going?” 에서 강조한 것처럼 MySQL 8.4.x 및 9.y 버전의 성능 저하가 우리의 관심을 끌었습니다. (https://www.percona.com/blog/sakila-where-are-you-going/)
다행히도 2024년 10월에 출시된 최신 버전 8.4.3 및 9.1.0 은 아래 표1 에서 볼 수 있듯이 주목할 만한 성능 개선을 보여주고 있습니다.

표 1: 다양한 워크로드에 대한 MySQL 8.4.3 과 MySQL 8.4.2 QPS 성능 향상
테스트한 방법, sysbench 워크로드, 하드웨어 구성에 대한 자세한 내용은 이전 블로그 게시물 “Percona Server for MySQL Performance Improvements – August 2024” 를 참조하십시오. (https://www.percona.com/blog/percona-server-for-mysql-performance-improvements-august-2024/)
표 1 에서 보여준 동일한 결과를 아래의 누적 그래프에서도 확인할 수 있으며, 이를 통해 성능 향상을 시각적으로 나타내고 있습니다.

흥미를 느낀 우리는 이러한 최적화의 원인을 더욱 자세히 살펴보았고, 성능 향상의 세 가지 주요 변경 사항을 확인했습니다.
- Binlog 트랜잭션 종속성을 ankerl::unordered_dense::map 으로 전환
Bug Reference: BUG#37008442 (https://github.com/mysql/mysql-server/commit/cb257cbc86e)
binlog_transaction_dependency 데이터 구조에서 std::map 을 ankerl::unordered_dense::map 으로 변경한 결과, 상당한 성능 향상이 이루어졌습니다. 이 개선은 INLIST_UPDATE 및 UPDATE_INDEX_LIMIT 와 같은 워크로드의 효율성을 높였으며, 평균적으로 19.4% 의 놀라운 성능 향상을 제공했습니다.
이 변경 사항은 Percona가 Percona Server 8.4.0(PS-9302, https://perconadev.atlassian.net/browse/PS-9302 )에서 처음 도입한 작업을 기반으로 하며, 이에 대한 자세한 내용은 2024년 8월 블로그 게시물에 자세히 설명되어 있습니다. (https://www.percona.com/blog/percona-server-for-mysql-performance-improvements-august-2024/)
- JOIN 을 사용하는 쿼리 실행 최적화
Bug Reference: BUG#35531293 (https://github.com/mysql/mysql-server/commit/dfecee6d080)
이전 MySQL 버전에서는 JOINS 를 사용하는 쿼리에서 MySQL 8.0.28 에 비해 MySQL 8.0.33 에서 성능 저하가 관찰되는 문제가 반복적으로 발생했습니다. 이번 최적화는 이러한 비효율성을 해결하여 POINTS_COVERED_SI 및 POINTS_NOTCOVERED_SI 와 같은 워크로드에서 평균적으로 2.17% 의 성능 향상을 제공했습니다.
- index range scans 성능 개선
Bug Reference: BUG#36775910 (https://github.com/mysql/mysql-server/commit/57b6d0d3d3c)
이전 버전에서는 index range scan 에서 record buffer 가 누락되어 불필요한 성능 저하가 발생했습니다. 최신 업데이트는 이 문제를 해결하여 ORDER_RANGES, RANGE_NOTCOVERED, RANGE_COVERED, SUM_RANGES 와 같은 다양한 워크로드에서 평균적으로 2.12% 의 성능 향상을 제공했습니다.
Overall performance gains
우리의 테스트는 이러한 변경 사항이 누적적으로 미친 영향을 강조합니다:
- Write workloads : 9개의 워크로드에서 평균 약25% 성능 향상
- Read workloads : 16개의 워크로드에서 평균 약39% 성능 향상
최신 버전 비교 시:
- MySQL 8.4.3 는 읽기 및 쓰기 성능에서 MySQL 8.0.40 보다 단지47% 느립니다.
- MySQL 9.1.0 는 읽기 및 쓰기 성능에서 MySQL 8.4.3보다 단지68% 느립니다.
Final thoughts
MySQL 8.4.3 과 9.1.0 의 성능 개선은 상당한 진전을 의미합니다. 이러한 릴리스는 Percona 가 기여한 소중한 버그 보고서와 수정 사항을 포함하여, 커뮤니티의 우려 사항을 해결하기 위해 MySQL 개발팀이 적극적으로 참여했음을 보여줍니다. 이전 버전의 최고 성능에 도달하기 위해 아직 최적화의 여지가 남아 있지만, 우리는 향후 릴리스에 대해 낙관적이며 MySQL 커뮤니티의 협력을 통해 이루어질 지속적인 발전을 기대합니다.
이 변경 사항과 그 영향에 대한 자세한 내용은 위에 링크된 관련 커밋 로그를 참조하십시오. Percona 는 항상 MySQL 커뮤니티가 최적의 성능과 신뢰성을 달성할 수 있도록 지원하는 데 최선을 다할 것입니다.
블로그 원문 : https://www.percona.com/blog/mysql-8-4-3-and-9-1-0-major-performance-gains-revealed/
자유롭게 댓글을 달아주세요! 언제나 환영합니다.
기타 문의: info@neoclova.co.kr
네오클로바 기술블로그 홈 바로가기: https://neoclova.net
네오클로바 홈페이지: http://neoclova.co.kr
