Amazon Aurora Version2(MySQL5.7)とVersion3(MySQL8.0)のパラメータの比較とTempTableの挙動について
CyberAgent Group SRE Advent Calendar 2023の10日目の記事です。
技術本部 サービスリライアビリティグループ(SRG)の鬼海(@fat47)です。
#SRG(Service Reliability Group)は、主に弊社メディアサービスのインフラ周りを横断的にサポートしており、既存サービスの改善や新規立ち上げ、OSS貢献などを行っているグループです。
なにかの役に立てば幸いです。
概要クラスタパラメータグループ5.7(v2)と8.0(v3)でパラメータのデフォルト値が変更になったもの5.7(v2) には存在したが 8.0(v3)で消えたパラメータ名8.0(v3) にだけ存在するパラメータ名
概要
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_seconds | 0 | - | Aurora 2.09未満まで利用されていたレプリケーション最適化設定 |
| aurora_parallel_query | OFF | - | Auroraパラレルクエリ有無 |
| innodb_sync_spin_loops | - | 30 | スレッドが中断される前に、InnoDB相互排他ロックが開放されるまでスレッドが待機する回数 |
| read_only | {TrueIfReplica} | 0 | 読み取りのみにする。v3からCONNECTION_ADMIN 権限を持つユーザーにこのパラメータは適用されない。(マスターユーザー含む) |
| server_audit_logging | 0 | - | 監査ログ有無 |
| thread_handling | multiple-connections-per-thread | thread-pools | 【変更不可】Auroraの接続スレッドの設定 |
5.7(v2) には存在したが 8.0(v3)で消えたパラメータ名
| パラメータ名 | 補足説明 |
|---|---|
| aurora_binlog_read_buffer_size | Aurora MySQL 2.09未満まで利用されていたレプリケーション最適化設定 |
| aurora_binlog_use_large_read_buffer | Aurora MySQL 2.09未満まで利用されていたレプリケーション最適化設定 |
| aurora_disable_hash_join | Aurora MySQL 2.09 以降でハッシュ結合最適化を無効設定 |
| aurora_enable_repl_bin_log_filtering | レプリケーションメッセージのネットワーク帯域幅を自動的に縮小 |
| aurora_enable_replica_log_compression | レプリカログ圧縮機能 |
| aurora_fwd_master_idle_timeout | aurora_fwd_writer_idle_timeoutにリネーム |
| aurora_fwd_master_max_connections_pct | aurora_fwd_writer_max_connections_pctにリネーム |
| aurora_lab_mode | v2にだけあったラボモード。v3ではMySQL8.0純正の機能に置き換わるので削除された |
| aurora_load_from_s3_role | S3のテキストファイルからAuroraへのロード。v3ではaws_default_s3_roleを使用 |
| aurora_mask_password_hashes_type | |
| aurora_max_alter_table_log_entries | |
| aurora_select_into_s3_role | S3のテキストファイルからAuroraへのロード。v3ではaws_default_s3_roleを使用 |
| binlog_gtid_simple_recovery | MySQLが再起動された時に、GTIDを検索する最中にどのようにバイナリログファイルが繰返し利用されるかを制御する |
| innodb_checksums | 【変更不可】 |
| innodb_cmp_per_index_enabled | INFORMATION_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_events | MySQL5.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_login | 0 | ユーザーログイン時に付与されているROLEをすべて自動で有効にするオプション |
| authentication_kerberos_caseins_cmp | 0 | |
| aurora_enable_staggered_replica_restart | - | 使用されていない |
| aurora_enhanced_binlog | - | 拡張バイナリログの有無 |
| aurora_fwd_writer_idle_timeout | 60 | aurora_fwd_master_idle_timeoutからのリネーム |
| aurora_fwd_writer_max_connections_pct | 10 | aurora_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_instructions | 3.05.0以上はYes | Aurora 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_globaldb | 1 | 拡張バイナリログをオンにするには、このパラメータを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_backup | 1 | 拡張バイナリログをオンにするには、このパラメータを0にする |
| cte_max_recursion_depth | - | CTE (共通テーブル式)の再帰レベル数に制限を強制。デフォルト1000 |
