Percona Server for MySQL 8.4.2 vs 8.0.40: Comparison of Variables and Keywords

 

이 블로그에서는 Percona Server for MySQL 의 LTS(장기 지원) 버전 간의 차이점을 살펴보겠습니다.
MySQL 8.0 은 2019년 4월에 출시되었으며, 이전 버전인 5.7 과 비교하여 data dictionary 에 대한 큰 변경 사항을 도입하고 여러 기능과 개선 사항을 활성화하는 등 주요 변화를 가져왔습니다.
그러나 direct 다운그레이드 경로를 제공하지 않아 도입 속도가 느려졌습니다.
하지만 5.7은 2023년 10월에 공식 지원 종료(EOL)로 지정되었으며, 8.0 의 도입률은 꾸준히 증가하고 있습니다.

 

Adoption rates 2023 through 2025

percona

2024년 4월, MySQL 은 8.4 버전 출시를 발표하며 이를 새로운 장기 지원(LTS) 주요 버전으로 지정했습니다.
8.0 버전 출시와 마찬가지로, 8.4 에서 8.0 으로의 in-place 다운그레이드는 지원되지 않습니다.

이 블로그에서는 각 버전의 구성 요소 차이를 살펴보며, 새로운 기능이나 동작 방식 등에 대한 심층적인 분석은 다루지 않습니다.
비교 대상으로는 Percona Server for MySQL 8.4.2 와 Percona Server for MySQL 8.0.40 을 사용합니다.
Percona Server for MySQL 은 기본 MySQL 과 동일한 구성 요소를 포함하면서 Percona Server 만의 추가 기능이 제공됩니다. 먼저 서버 변수를 살펴보겠습니다.

 

Variables

모든 major 버전에서는 새로운 변수가 추가됩니다. 8.4.2 버전에서는 다음과 같은 새로운 변수가 도입되었습니다.

Variable default

  • explain_json_format_version 1
  • performance_schema_max_meter_classes 30
  • performance_schema_max_metric_classes 600
  • restrict_fk_on_non_standard_key ON
  • set_operations_buffer_size 262144
  • tls_certificates_enforced_validation OFF

일반적으로 변수는 예외적인 경우를 제외하고 기본값으로 유지하는 것이 좋은 관행입니다.
기본값을 변경하는 것은 검증 가능한 개선이 이루어질 때만 수행해야 합니다. 이러한 새로운 변수들도 예외는 아닙니다.

explain_json_format_version 변수는 EXPLAIN FORMAT=JSON 명령문의 동작을 제어합니다.
기본값은 이전 형식에서 제공하는 출력과 동일합니다.
이 변수는 session 수준에서 변경할 수 있으며 동적으로 설정할 수 있습니다.
performance_schema_max_meter_classes 및 performance_schema_max_metric_classes 변수는 생성할 수 있는 meter 및 metric 계측기의 최대 수를 제어합니다.
restrict_fk_on_non_standard_key 변수는 고유하지 않거나 partial keys 를 foreign key 로 사용하는 것을 방지합니다.
이는 최상의 보안 및 데이터 무결성 유지 관점에서 권장되며, 기본값을 유지하는 것이 좋습니다.
set_operations_buffer_size 변수는 INTERSECT 및 EXCEPT 연산을 위한 버퍼 크기를 결정합니다.
이 변수 역시 session 수준에서 설정할 수 있습니다.
마지막으로, tls_certificates_enforced_validation 변수는 ” controls whether certificate validation is enforced at startup (시작 시 인증서 검증을 강제할지 여부)”를 제어합니다.
이러한 변수 및 기타 서버 변수에 대한 자세한 내용은 공식 문서를 참조하시기 바랍니다.

반대로, major 릴리스에서는 변수가 제거되는 경우도 많습니다.
이러한 변수가 구성 파일(/etc/my.cnf 등)에 남아 있으면 서버가 시작되지 않기 때문에 반드시 제거해야 합니다.
제거될 변수들은 이전 버전에서 사용 중단(Deprecated)으로 지정됩니다.
사용 중단된 변수는 서버 시작을 막지는 않지만, 향후 제거될 가능성이 높습니다. 8.0.40 에서 사용 가능했으나 8.4.2 에서 제거된 변수는 다음과 같습니다.

  • avoid_temporal_upgrade
  • binlog_transaction_dependency_tracking
  • default_authentication_plugin
  • expire_logs_days
  • have_openssl
  • have_ssl
  • innodb_parallel_dblwr_encrypt
  • innodb_parallel_doublewrite_path
  • log_bin_use_v1_row_events
  • master_info_repository
  • new
  • old
  • relay_log_info_file
  • relay_log_info_repository
  • show_old_temporals
  • slave_rows_search_algorithms
  • transaction_write_set_extraction

새롭게 사용 중단(Deprecated)으로 지정되었으며, 향후 릴리스에서 제거될 예정인 변수는 다음과 같습니다.

  • performance_schema_show_processlist
  • restrict_fk_on_non_standard_key

Variable8.0.40 Default8.4.2 Default
enforce_gtid_consistencyOFFON
group_replication_consistencyEVENTUALBEFORE_ON_PRIMARY_FAILOVER
gtid_modeOFFON
innodb_adaptive_hash_indexONOFF
innodb_buffer_pool_in_core_fileONOFF
innodb_change_bufferingallnone
innodb_doublewrite_pagesinnodb_write_io_threads value128
innodb_flush_methodfsyncO_DIRECT
innodb_io_capacity20010000
innodb_io_capacity_max200020000
innodb_log_buffer_size16777216 (16M)67108864 (64M)
innodb_numa_interleaveOFFON
innodb_parallel_read_threads4(available logical processors / 8), min of 4
innodb_read_io_threads4(available logical processors / 8), min of 4
innodb_use_fdatasyncOFFON
optimizer_switchAdditional switch operator: hash_set_operations=on
temptable_max_mmap10737418240
temptable_max_ram10737418244294967296

 

 

Keywords

새로운 버전에서는 새로운 키워드와 예약어가 추가될 수도 있습니다.
8.4 버전에서도 이러한 변화가 적용되었습니다.

New keywords in 8.4

  • AUTO
  • BERNOULLI
  • GTIDS
  • LOG
  • MANUAL (R)
  • PARALLEL (R)
  • PARSE_TREE
  • QUALIFY (R)
  • S3
  • TABLESAMPLE (R)* Note: (R) 표시는 예약어(Reserved Keyword)를 의미합니다.

키워드가 제거되는 경우는 드물지만, 8.4 버전에서는 일부 키워드가 삭제되었습니다.
대부분은 기존의 master 및 slave 와 관련된 구식 복제 용어입니다.
제거된 복제 관련 키워드는 보다 중립적인 용어인 source 및 replica 로 대체되었습니다.
예를 들어, MASTER_LOG_FILE 은 SOURCE_LOG_FILE 로 변경되었습니다.

Keywords in 8.0 that are removed from 8.4

  • ANALYSE
  • DES_KEY_FILE
  • GET_MASTER_PUBLIC_KEY
  • MASTER_AUTO_POSITION
  • MASTER_BIND (R)
  • MASTER_COMPRESSION_ALGORITHMS)
  • MASTER_CONNECT_RETRY
  • MASTER_DELAY
  • MASTER_HEARTBEAT_PERIOD
  • MASTER_HOST
  • MASTER_LOG_FILE
  • MASTER_LOG_POS
  • MASTER_PASSWORD
  • MASTER_PORT
  • MASTER_PUBLIC_KEY_PATH
  • MASTER_RETRY_COUNT
  • MASTER_SERVER_ID
  • MASTER_SSL
  • MASTER_SSL_CA
  • MASTER_SSL_CAPATH
  • MASTER_SSL_CERT
  • MASTER_SSL_CIPHER
  • MASTER_SSL_CRL
  • MASTER_SSL_CRLPATH
  • MASTER_SSL_KEY
  • MASTER_SSL_VERIFY_SERVER_CERT (R)
  • MASTER_TLS_CIPHERSUITES
  • MASTER_TLS_VERSION
  • MASTER_USER
  • MASTER_ZSTD_COMPRESSION_LEVEL
  • REDOFILE
  • REMOTE
  • SQL_CACHE

버전 간에는 몇 가지 기능적인 차이도 존재합니다.
예를 들어, information_schema 의 TABLESPACES 테이블은 8.4.2에서 제거되었습니다.
반면, performance_schema에는 두 개의 새로운 테이블이 추가되었습니다.

  • setup_meters
  • setup_metrics

이것이 8.0 과 8.4 구성 요소 간의 몇 가지 기능적 차이점입니다.
여러 기능 향상 및 새로운 기능은 이 블로그의 범위를 벗어나므로, 자세한 내용은 공식 문서를 참고하시기 바랍니다.

다음 참고 자료가 도움이 될 수 있습니다.

 

 

블로그 원문 : https://www.percona.com/blog/percona-server-for-mysql-8-4-2-vs-8-0-40-comparison-of-variables-and-keywords/  

 

자유롭게 댓글을 달아주세요! 언제나 환영합니다.
기타 문의:  info@neoclova.co.kr
네오클로바 기술블로그 홈 바로가기: https://neoclova.net
네오클로바 홈페이지: http://neoclova.co.kr

 

Similar Posts

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다