Amazon Aurora Version2(MySQL5.7)とVersion3(MySQL8.0)のパラメータの比較とTempTableの挙動について

CyberAgent Group SRE Advent Calendar 2023の10日目の記事です。

技術本部 サービスリライアビリティグループ(SRG)の鬼海(@fat47)です。
#SRG(Service Reliability Group)は、主に弊社メディアサービスのインフラ周りを横断的にサポートしており、既存サービスの改善や新規立ち上げ、OSS貢献などを行っているグループです。
本記事は、SRG 内にある DBWG(DBワーキンググループ)が全社内向けに提供しているデータベースに関する資料を公開します。
なにかの役に立てば幸いです。
 

概要


Version2とVersion3で適用されるデフォルトのクラスタパラメータグループを比較し、デフォルト値が変わったものや設定項目が追加・削除されたものをまとめました。
それぞれのパラメータ名はアルファベット順にソートしてあります。
また、特に気をつけるべきパラメータとしてMySQL8.0から挙動の変わったTempTableについて解説しています。
 
Aurora MySQLのアップグレードについてはAWS公式のこれらのドキュメントが非常に参考になります。

クラスタパラメータグループ


5.7(v2)と8.0(v3)でパラメータのデフォルト値が変更になったもの

パラメータ名5.7(v2)デフォルト値8.0(v3)デフォルト値補足説明
aurora_binlog_replication_max_yield_seconds0-Aurora 2.09未満まで利用されていたレプリケーション最適化設定
aurora_parallel_queryOFF-Auroraパラレルクエリ有無
innodb_sync_spin_loops-30スレッドが中断される前に、InnoDB相互排他ロックが開放されるまでスレッドが待機する回数
read_only{TrueIfReplica}0読み取りのみにする。v3からCONNECTION_ADMIN 権限を持つユーザーにこのパラメータは適用されない。(マスターユーザー含む)
server_audit_logging0-監査ログ有無
thread_handlingmultiple-connections-per-threadthread-pools【変更不可】Auroraの接続スレッドの設定

5.7(v2) には存在したが 8.0(v3)で消えたパラメータ名

パラメータ名補足説明
aurora_binlog_read_buffer_sizeAurora MySQL 2.09未満まで利用されていたレプリケーション最適化設定
aurora_binlog_use_large_read_bufferAurora MySQL 2.09未満まで利用されていたレプリケーション最適化設定
aurora_disable_hash_joinAurora MySQL 2.09 以降でハッシュ結合最適化を無効設定
aurora_enable_repl_bin_log_filteringレプリケーションメッセージのネットワーク帯域幅を自動的に縮小
aurora_enable_replica_log_compressionレプリカログ圧縮機能
aurora_fwd_master_idle_timeoutaurora_fwd_writer_idle_timeoutにリネーム
aurora_fwd_master_max_connections_pctaurora_fwd_writer_max_connections_pctにリネーム
aurora_lab_modev2にだけあったラボモード。v3ではMySQL8.0純正の機能に置き換わるので削除された
aurora_load_from_s3_roleS3のテキストファイルからAuroraへのロード。v3ではaws_default_s3_roleを使用
aurora_mask_password_hashes_type
aurora_max_alter_table_log_entries
aurora_select_into_s3_roleS3のテキストファイルからAuroraへのロード。v3ではaws_default_s3_roleを使用
binlog_gtid_simple_recoveryMySQLが再起動された時に、GTIDを検索する最中にどのようにバイナリログファイルが繰返し利用されるかを制御する
innodb_checksums【変更不可】
innodb_cmp_per_index_enabledINFORMATION_SCHEMA.INNODB_CMP_PER_INDEX テーブルでインデックスごとの圧縮関連の統計を有効
innodb_compression_failure_threshold_pct
innodb_compression_level
innodb_compression_pad_pct_max
innodb_file_format
innodb_large_prefix
innodb_random_read_ahead
innodb_read_ahead_threshold
innodb_support_xa
internal_tmp_disk_storage_engine
log_bin_use_v1_row_eventsMySQL5.5以前のバイナリログROW形式
log_builtin_as_identified_by_password
log_slave_updatesリネーム
log_slow_slave_statementsリネーム
log_warnings
master-info-repositoryリネーム
master_verify_checksumリネーム
max_length_for_sort_data
max_tmp_tables
metadata_locks_cache_size
old_passwords
query_cache_limitクエリキャッシュ関連
query_cache_min_res_unitクエリキャッシュ関連
query_cache_sizeクエリキャッシュ関連
query_cache_typeクエリキャッシュ関連
query_cache_wlock_invalidateクエリキャッシュ関連
relay_log_info_repository
secure_auth
server_audit_query_log_limit
show_compatibility_56
slave_checkpoint_groupリネーム
slave_checkpoint_periodリネーム
slave_parallel_typeリネーム
slave_parallel_workersリネーム
slave_pending_jobs_size_maxリネーム
slave_rows_search_algorithmsリネーム
slave-skip-errorsリネーム
slave_sql_verify_checksumリネーム
slave_type_conversionsリネーム
sync_frm
sync_master_infoリネーム
sync_relay_log
temp-pool
tx_isolationリネーム

8.0(v3) にだけ存在するパラメータ名

パラメータ名default補足説明
activate_all_roles_on_login0ユーザーログイン時に付与されているROLEをすべて自動で有効にするオプション
authentication_kerberos_caseins_cmp0
aurora_enable_staggered_replica_restart-使用されていない
aurora_enhanced_binlog-拡張バイナリログの有無
aurora_fwd_writer_idle_timeout60aurora_fwd_master_idle_timeoutからのリネーム
aurora_fwd_writer_max_connections_pct10aurora_fwd_master_max_connections_pctからのリネーム
aurora_jemalloc_background_thread-Aurora MySQL3.05.0で追加されたJemalloc(内部メモリアロケータ)の動作を制御するオプション
aurora_jemalloc_dirty_decay_ms-Aurora MySQL3.05.0で追加されたJemalloc(内部メモリアロケータ)の動作を制御するオプション
aurora_jemalloc_tcache_enabled-Aurora MySQL3.05.0で追加されたJemalloc(内部メモリアロケータ)の動作を制御するオプション
aurora_replica_read_consistency-クライアントからリードレプリカに対して書き込み操作を行った場合に、リーダーインスタンスがライターインスタンスに書き込み操作を転送する
aurora_tmptable_enable_per_table_limit-新しい一時テーブルの動作制御
aurora_use_vector_instructions3.05.0以上はYesAurora MySQL3.05.0で追加された。Aurora MySQL は最適化されたベクトル処理命令を使用して、I/O 負荷の高いワークロードのパフォーマンスを向上
binlog-do-db-指定されたバイナリログテーブルに変更を複製
binlog_group_commit_sync_delay-マルチスレッドレプリケーション関係
binlog_group_commit_sync_no_delay_count-マルチスレッドレプリケーション関係
binlog-ignore-db-指定されたバイナリログテーブルに変更を複製しない
binlog_replication_globaldb1拡張バイナリログをオンにするには、このパラメータを0にする
binlog_row_metadata-バイナリログに追加されるテーブルメタデータの量
binlog_row_value_options-PARTIAL_JSON に設定すると、JSON ドキュメントの小さい部分のみを変更する更新に領域効率のよいバイナリログ形式を使用できるようになる
binlog_transaction_compression-サーバー上のバイナリログファイルに書き込まれるトランザクションの圧縮を有効にします。 OFF がデフォルト
binlog_transaction_compression_level_zstd-トランザクションの圧縮レベル
binlog_transaction_dependency_tracking-マルチスレッドレプリが並列で実行できるトランザクションを判断するのに役立つように、バイナリログにソースが記録する依存性情報のソースを指定
binlog_backup1拡張バイナリログをオンにするには、このパラメータを0にする
cte_max_recursion_depth-CTE (共通テーブル式)の再帰レベル数に制限を強制。デフォルト1000