パラメータの設定が不適切な場合、ApsaraDB RDS for MySQL インスタンスのパフォーマンスが低下したり、アプリケーションエラーが発生したりする可能性があります。このトピックでは、主要なパラメータの推奨値とチューニングガイダンスについて説明します。
パラメータ診断
ApsaraDB RDS for MySQL は、パラメータ診断をサポートしています。この機能は、専門家が定義したルールと数式に基づいてインスタンスの現在の設定を分析し、チューニングの提案を表示します。このトピックのガイダンスと併せてパラメータ診断を利用し、インスタンスを最適化してください。
パラメータテンプレートは、一般的なシナリオ向けに事前設定された値を提供し、出発点となります。しかし、実際には、主要なパラメータはワークロードに合わせて調整する必要があります。デフォルト値はすべてのユースケースに最適化されているわけではありません。
デフォルトのパラメータ値は ApsaraDB RDS コンソールで確認できます。
再起動の動作
MySQL 8.0 および MySQL 5.7 のドキュメントに記載されているように、スコープが Global,Session である一部のパラメータは、再接続または再起動後にのみ有効になります。インスタンスを再起動すると、短時間の中断が発生します。再起動はオフピーク時間帯にスケジュールしてください。
パラメータリファレンス
接続管理
back_log
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6、5.5 |
| 再起動の要否 | はい |
| 一時的な接続 | はい — オフピーク時間帯に変更してください |
インスタンスが多数の短時間接続を処理する際の接続キューの長さを制御します。キューがいっぱいになると、インスタンスは新しい接続リクエストを拒否します。
症状:値が小さすぎると、次のアプリケーションエラーが発生します:
SQLSTATE[HY000] [2002] Connection timed out
推奨値: 3000
net_write_timeout
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6、5.5 |
| 再起動の要否 | いいえ |
| 一時的な接続 | いいえ |
インスタンスがクライアントにブロックを送信するまでの待機時間を設定します。
症状:値が小さすぎると、次のクライアントエラーが発生します:
"the last packet successfully received from the server was milliseconds ago"
"the last packet sent successfully to the server was milliseconds ago"
推奨値: 60 (秒、デフォルト)。ネットワークが不安定な場合や、クライアントが各ブロックの処理に時間がかかる場合は、予期しない切断を防ぐためにこの値を大きくしてください。
innodb_lock_wait_timeout
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 |
| 再起動の要否 | いいえ |
| 一時的な接続 | いいえ |
InnoDB トランザクションが、トランザクションが中止されるまでに行ロックを待機する最大時間 (秒) を設定します。
推奨値: 50
同時実行性とスレッド管理
innodb_thread_concurrency
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 |
| 再起動の要否 | いいえ |
| 一時的な接続 | いいえ |
InnoDB 内の最大同時実行スレッド数を設定します。値 0 は制限をなくします。
推奨値: 高い同時実行性のパフォーマンスの問題をトラブルシューティングしている場合を除き、0 (無制限) を推奨します。
loose_rds_threads_running_high_watermark
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 5.6、5.5 |
| 再起動必須 | いいえ |
| 一時的な接続 | いいえ |
同時実行クエリの総数を制限します。たとえば、これを 100 に設定すると、最大 100 の同時 MySQL クエリが許可され、追加のクエリは拒否されます。
このパラメータを使用して、バーストトラフィックやピーク時の過負荷からインスタンスを保護します。
thread_pool_enabled
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 |
| 再起動の要否 | いいえ |
| 一時的な接続 | いいえ |
スレッドプール機能を有効または無効にします。
推奨値: ON
thread_pool_size
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7 |
| 再起動の要否 | いいえ |
| 一時的な接続 | いいえ |
スレッドプール内のスレッドグループの数を設定します。
推奨値: {LEAST(DBInstanceClassCPU × 2, 64)}
thread_pool_oversubscribe
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 |
| 再起動の要否 | いいえ |
| 一時的な接続 | いいえ |
スレッドグループごとのアクティブスレッドの最大数を設定します。
推奨値: 32
thread_stack
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 |
| 再起動の要否 | はい |
| 一時的な接続 | はい — オフピーク時間帯に変更してください |
各ユーザースレッドのスタックの深さを設定します。値が小さすぎると、深く再帰的な SQL クエリが失敗します。
推奨値: 1048576
バッファープールとメモリ
innodb_buffer_pool_size
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 |
| 再起動の要否 | MySQL 8.0 および 5.7:いいえ / MySQL 5.6:はい |
| 一時的な接続 | MySQL 8.0 および 5.7:いいえ / MySQL 5.6:はい — オフピーク時間帯に変更してください |
テーブルとインデックスデータをキャッシュするための主要なメモリ領域である InnoDB バッファープールのサイズを設定します。適切にサイズ設定されたバッファープールは、ワーキングセット (クエリが最も頻繁にアクセスするデータとインデックス) をメモリ内に保持し、ディスク I/O を大幅に削減します。
推奨値: {DBInstanceClassMemory × 3/4}
innodb_buffer_pool_instances
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 |
| 再起動の要否 | はい |
| 一時的な接続 | はい — オフピーク時間帯に変更してください |
バッファープールを複数の独立して管理されるインスタンスに分割し、同時読み取りと書き込みをサポートします。innodb_buffer_pool_size が 1 GB を超える場合にのみ適用されます。
推奨値: {LEAST(DBInstanceClassMemory/1073741824, 8)}
innodb_max_dirty_pages_pct_lwm
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 |
| 再起動の要否 | いいえ |
| 一時的な接続 | いいえ |
事前フラッシュをトリガーするダーティページの割合のしきい値を設定します。この値は innodb_max_dirty_pages_pct より小さくする必要があります。これを 0 に設定すると、事前フラッシュが無効になります。
推奨値: 10
innodb_lru_scan_depth
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 |
| 再起動の要否 | いいえ |
| 一時的な接続 | いいえ |
ダーティページをフラッシュする際に、ページクリーナースレッドが各バッファープールインスタンスの最近使用されていない (LRU) リストをどれだけ深くスキャンするかを設定します。
推奨値: {LEAST(DBInstanceClassMemory/1048576/8, 8192)}
innodb_page_cleaners
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7 |
| 再起動の要否 | はい |
| 一時的な接続 | はい — オフピーク時間帯に変更してください |
バッファープールインスタンスからダーティページをフラッシュするために使用されるページクリーナースレッドの数を設定します。この値がバッファープールインスタンスの数を超える場合、システムは自動的に innodb_buffer_pool_instances の値に上限を設定します。デフォルトは 4 です。
推奨値: 8
tmp_table_size
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6、5.5 |
| 再起動の要否 | いいえ |
| 一時的な接続 | いいえ |
スレッドごとの内部インメモリ一時テーブルの最大サイズを設定します。有効な制限は tmp_table_size または max_heap_table_size のいずれか小さい方です。一時テーブルがこの制限を超えると、MySQL はそれをオンディスクテーブル (MySQL 8.0 では InnoDB、それ以前のバージョンでは MyISAM) に変換します。
症状:インデックスで処理できない GROUP BY または DISTINCT を含む複雑なクエリは、一時テーブルがディスクに書き出されると実行が遅くなります。
デフォルト値: 2097152。クエリに多くの GROUP BY または DISTINCT 句が含まれている場合、十分なメモリを持つインスタンスでこの値を増やしてください。
I/O とフラッシュのパフォーマンス
innodb_io_capacity
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 |
| 再起動の要否 | いいえ |
| 一時的な接続 | いいえ |
InnoDB のバックグラウンドタスクが消費できる 1 秒あたりの I/O 操作の最大数を設定します。
推奨値: 20000
innodb_io_capacity_max
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 |
| 再起動の要否 | いいえ |
| 一時的な接続 | いいえ |
フラッシュが設定されたレートに追いつかない場合に InnoDB が使用できる最大 IOPS を設定します。
推奨値: 40000
innodb_flush_neighbors
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 |
| 再起動の要否 | いいえ |
| 一時的な接続 | いいえ |
ダーティページをフラッシュする際に、InnoDB が隣接するダーティページをフラッシュするかどうかを制御します。有効な値:
-
0:対象のダーティページのみをフラッシュします。 -
1:対象のページとその同じエクステント内の隣接ページをフラッシュします。 -
2:同じエクステント内のすべてのダーティページをフラッシュします。
推奨値: 0
innodb_change_buffering
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 |
| 再起動の要否 | いいえ |
| 一時的な接続 | いいえ |
セカンダリインデックスへの書き込み操作を遅延させ、ランダム I/O をシーケンシャル I/O に変換します。これは HDD では役立ちますが、最新のストレージハードウェアでは利点が限られます。
推奨値: none
Redo ログ
innodb_log_file_size
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 |
| 再起動の要否 | はい |
| 一時的な接続 | はい — オフピーク時間帯に変更してください |
Redo ロググループ内の各ログファイルのサイズを設定します。Redo ログの合計サイズは innodb_log_file_size × innodb_log_files_in_group であり、512 GB を超えることはできません。デフォルトは 48 MB です。
ログファイルを大きくすると、チェックポイントの頻度とディスク I/O が減少しますが、クラッシュリカバリ時間が増加します。この値は、インスタンスが 1 時間以上の書き込みトラフィックを処理できるほど大きく設定し、ピーク時とオフピーク時の I/O の差を平滑化します。
推奨値: ご利用のインスタンスの仕様に基づいて設定してください。
ファイルハンドル
open_files_limit
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 |
| 再起動の要否 | はい |
| 一時的な接続 | はい — オフピーク時間帯に変更してください |
インスタンスが同時に開くことができるファイルハンドルの数を設定します。innodb_open_files にも影響します。
推奨値:
-
MySQL 5.6:
65535 -
MySQL 5.7 および 8.0:
655350
32 以上の CPU コアと多数のアクティブセッションまたはテーブルを持つインスタンスの場合、この値をインスタンスファイルの実際の数よりわずかに大きい値に設定します。
innodb_open_files
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 |
| 再起動の要否 | はい |
| 一時的な接続 | はい — オフピーク時間帯に変更してください |
InnoDB が同時に開くことができるファイルハンドルの最大数を設定します。
症状:値が小さすぎると、パフォーマンスを低下させる次の警告が発生します:
[Warning] [MY-012152] [InnoDB] Open files * exceeds the limit *
推奨値: 20000
table_open_cache
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 |
| 再起動の要否 | いいえ |
| 一時的な接続 | いいえ |
サーバーがすべてのテーブルキャッシュインスタンスにわたって開いたままにするテーブルの最大数を設定します。値が小さすぎると高い同時実行性下でのクエリパフォーマンスが低下し、大きすぎるとメモリ使用量が増加します。この値を増やすときは、メモリ使用量を監視してください。
推奨値: {LEAST(DBInstanceClassMemory/1073741824 × 1024, 16384)}
table_open_cache_instances
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 |
| 再起動の要否 | はい |
| 一時的な接続 | はい — オフピーク時間帯に変更してください |
テーブルキャッシュを、それぞれサイズが table_open_cache / table_open_cache_instances の個別のインスタンスに分割します。これにより、セッション間のテーブルキャッシュの競合が減少します。
推奨値: 16
自動インクリメントとロック
innodb_autoinc_lock_mode
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6、5.5 |
| 再起動の要否 | はい |
| 一時的な接続 | はい — オフピーク時間帯に変更してください |
InnoDB が自動インクリメント主キーの AUTO-INC ロックをどのように管理するかを制御します。有効な値:
-
0(トラディショナル):ステートメントの全期間にわたって AUTO-INC ロックを保持します。INSERT の同時実行性を大幅に制限します。 -
1(連続、デフォルト):AUTO-INC ロックを短時間保持します。固定行の挿入ではすぐに解放し、可変行の挿入ではステートメントの全期間保持します。 -
2(インターリーブ):行数が固定されているかどうかに関係なく、値が割り当てられるとすぐに AUTO-INC ロックを解放します。
推奨値: 2。これにより、AUTO-INC デッドロックが解消され、INSERT … SELECT のパフォーマンスが向上します。
これを 2 に設定するには、バイナリログフォーマットが ROW である必要があります。
innodb_adaptive_hash_index
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 |
| 再起動の要否 | いいえ |
| 一時的な接続 | いいえ |
アダプティブハッシュインデックスを有効または無効にします。これは、クエリパターンに基づいて InnoDB がバッファープールページを迅速に見つけるのに役立ちます。
症状:有効 (ON) にすると、特定のステートメント (特に DDL) がアダプティブハッシュインデックスのメンテナンスをトリガーし、他のクエリをブロックしたり、パフォーマンスを低下させたりする可能性があります。
推奨値: OFF。背景情報については、「ApsaraDB RDS for MySQL のアダプティブハッシュインデックスに関するベストプラクティス」をご参照ください。
レプリケーション
rpl_semi_sync_master_timeout
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 |
| 再起動の要否 | いいえ |
| 一時的な接続 | いいえ |
プライマリ RDS インスタンスが、トランザクションコミット前にセカンダリ RDS インスタンスからのバイナリログ受信確認を待機する時間を設定します。タイムアウトを超えると、レプリケーションは準同期から非同期にダウングレードします。セカンダリが追いつくと、レプリケーションは自動的に準同期モードに戻ります。
推奨値: 1000 (ミリ秒、1 秒に相当)。高いデータ信頼性を必要とするワークロードの場合、非同期レプリケーションへのダウングレードを防ぐためにこの値を大きくしてください。大きな値は、長時間トランザクション中に書き込みリクエストを停滞させ、高可用性 (HA) コンポーネントがインスタンスの障害を検出し、インスタンススイッチオーバーを開始する可能性があることに注意してください。
slave_parallel_workers
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 |
| 再起動の要否 | いいえ |
| 一時的な接続 | いいえ |
セカンダリ RDS インスタンスでのパラレル再生スレッドの数を設定します。スレッドが少なすぎると、パラレル再生のスループットが制限され、レプリケーション遅延が増加します。
推奨値: {GREATEST(DBInstanceClassCPU, 8)}
binlog_transaction_dependency_tracking
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0 (マイナーバージョン ≥ 20210930)、MySQL 5.7 (マイナーバージョン ≥ 20211231) |
| 再起動必須 | いいえ |
| 一時的な接続 | いいえ |
MySQL がパラレルレプリケーションのためにトランザクションの依存関係をどのように追跡するかを指定します。これを WRITESET に設定すると、行レベルの競合検出が有効になり、セカンダリ RDS インスタンスでのより高速なパラレル再生が可能になります。
推奨値: WRITESET。 このパラメーターを変更する前に、transaction_write_set_extraction を設定します。 詳細については、「WRITESET 関連のパラメーターを変更する」をご参照ください。
binlog_transaction_dependency_history_size
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0 (マイナーバージョン ≥ 20210930)、MySQL 5.7 (マイナーバージョン ≥ 20211231) |
| 再起動の要否 | いいえ |
| 一時的な接続 | いいえ |
依存関係の追跡のためにメモリに保持されるハッシュ化されたトランザクションエントリの最大数を設定します。制限に達すると、すべてのエントリがクリアされます。
症状:値が小さすぎると、セカンダリ RDS インスタンスでのパラレル再生の同時実行性が低下し、レプリケーション遅延が増加します。
推奨値: 500000。詳細については、「WRITESET 関連パラメーターの変更」をご参照ください。
transaction_write_set_extraction
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0 (マイナーバージョン ≥ 20210930)、MySQL 5.7 (マイナーバージョン ≥ 20211231) |
| 再起動の要否 | いいえ |
| 一時的な接続 | いいえ |
WRITESET で使用されるハッシュアルゴリズムを設定します。
推奨値: XXHASH64。詳細については、「WRITESET に関連するパラメーターを調整する」をご参照ください。
クエリキャッシュ (MySQL 5.7 以前)
query_cache_size
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 5.7、5.6、5.5 |
| 再起動の要否 | いいえ |
| 一時的な接続 | いいえ |
MySQL クエリキャッシュに割り当てられるメモリを制御します。有効にすると、MySQL はクエリを実行する前にキャッシュをチェックします。書き込みが少なく、読み取り負荷の高いワークロードでは、これによりパフォーマンスが向上する可能性があります。書き込み負荷の高いワークロードでは、クエリキャッシュのロックメカニズムが頻繁な競合を引き起こし、SELECT のパフォーマンスが低下します。
症状: 多くの接続が次の状態でスタックします:
checking query cache for query
waiting for query cache lock
storing result in query cache
推奨値: 無効のままにします (ApsaraDB RDS のデフォルト)。以前にクエリキャッシュを有効にし、上記の症状が見られる場合は、無効にしてください。
クエリオプティマイザ
eq_range_index_dive_limit
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 |
| 再起動の要否 | いいえ |
| 一時的な接続 | いいえ |
オプティマイザが等価範囲条件に対して、インデックスダイブから統計ベースの推定に切り替えるタイミングを制御します。次のようなクエリの場合:
col_name IN (val1, ..., valN)
col_name = val1 OR ... OR col_name = valN
N がこの制限より小さい場合、オプティマイザはインデックスダイブを使用してデータをサンプリングします。N がこの制限以上の場合、オプティマイザは代わりにテーブル統計を使用します。
詳細については、「eq_range_index_dive_limit に関する MySQL ドキュメント」をご参照ください。
推奨値:
-
MySQL 5.6:
10 -
MySQL 5.7 および 8.0:
100
一時ファイルとディスク領域
loose_rds_max_tmp_disk_space
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 5.6、5.5 |
| 再起動の要否 | いいえ |
| 一時的な接続 | いいえ |
インスタンス上の一時ファイルの合計サイズを制限します。
症状:この制限を超えると、次のエラーが発生します:
The table '/home/mysql/dataxxx/tmp/#sql_2db3_1' is full
まず、一時ファイルを生成する SQL ステートメントが最適化できるかどうかを確認してください。インスタンスに十分なディスク領域があり、クエリが避けられない場合は、この値を増やしてください。
DDL 高速化
loose_innodb_rds_faster_ddl
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 (マイナーバージョン ≥ 20200630) |
| 再起動の要否 | いいえ |
| 一時的な接続 | いいえ |
ApsaraDB RDS チームが開発したバッファープール管理メカニズムを使用して、特定の DDL 操作 (スキーマ変更など) を高速化し、DDL が実行中のワークロードに与える影響を軽減します。
推奨値: 有効。
フルテキストインデックス
innodb_ft_cache_size
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 |
| 再起動の要否 | はい |
| 一時的な接続 | はい — オフピーク時間帯に変更してください |
テーブルごとにフルテキストインデックスデータに割り当てられるメモリ (バイト単位) を設定します。
推奨値: 8000000
innodb_ft_total_cache_size
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 |
| 再起動の要否 | はい |
| 一時的な接続 | はい — オフピーク時間帯に変更してください |
インスタンス上のすべてのテーブルにわたるフルテキストインデックスデータに割り当てられる合計メモリ (バイト単位) を設定します。
推奨値: 640000000
innodb_ft_result_cache_limit
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 |
| 再起動の要否 | いいえ |
| 一時的な接続 | いいえ |
各フルテキストインデックスクエリの結果セットのメモリ制限 (バイト単位) を設定します。
推奨値: 2000000000
InnoDB 内部
innodb_purge_threads
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 |
| 再起動の要否 | はい |
| 一時的な接続 | はい — オフピーク時間帯に変更してください |
InnoDB が undo レコードをパージするために使用するバックグラウンドスレッドの数を設定します。スレッドが多いほどパージのスループットが向上し、undo ファイルの蓄積を防ぎ、一部のワークロードでは DML とクエリのパフォーマンスが向上します。
推奨値: LEAST(DBInstanceClassMemory/1073741824, 8)
innodb_sync_array_size
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 |
| 再起動の要否 | はい |
| 一時的な接続 | はい — オフピーク時間帯に変更してください |
mutex/ロック待機配列のサイズを設定します。値が大きいほど、多くの待機スレッドを生成するワークロードの同時実行性が向上します。このパラメータは起動時に読み取られ、ランタイムでは変更できません。待機スレッドの数が頻繁に 768 を超える場合は、この値を増やしてください。
推奨値: 128
innodb_parallel_read_threads
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0 (マイナーバージョン ≥ 20200831) |
| 再起動の要否 | いいえ |
| 一時的な接続 | いいえ |
プライマリキースキャンのための同時実行スレッドの数を設定します。このパラメータには既知のバグがあります。
推奨値: 0 (無効)
監視とロギング
performance_schema
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 |
| 再起動の要否 | はい |
| 一時的な接続 | — |
MySQL の内部実行を計測する Performance Schema を有効または無効にします。有効にすると、メモリオーバーヘッドが増加し、パフォーマンスに影響を与える可能性があります。
推奨値: OFF
general_log
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 |
| 再起動の要否 | いいえ |
| 一時的な接続 | いいえ |
サーバーが受信したすべてのステートメントを記録する一般クエリログを有効または無効にします。
症状:このログを有効にすると、インスタンスストレージが枯渇する可能性があります。詳細については、「一般クエリログ機能に関するよくある質問」をご参照ください。
推奨値: OFF
タイムゾーン
default_time_zone
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 8.0、5.7、5.6 |
| 再起動の要否 | はい |
| 一時的な接続 | はい — オフピーク時間帯に変更してください |
デフォルトのサーバータイムゾーンを設定します。
症状:タイムゾーンが設定されていないか、不一致の場合、不正確な時刻変換、不整合なタイムスタンプ、および頻繁なタイムゾーン調整による CPU 使用率の増加を引き起こします — 特に複数のリージョンにサービスを提供するアプリケーションで顕著です。
推奨値: ビジネス要件に基づいて設定してください。詳細については、「ApsaraDB RDS for MySQL の time_zone パラメータのベストプラクティス」をご参照ください。
MySQL 5.6 のパラメータ
loose_tokudb_buffer_pool_ratio
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 5.6 |
| 再起動の要否 | はい |
| 一時的な接続 | はい — オフピーク時間帯に変更してください |
TokuDB テーブルが使用できるバッファメモリの割合を、innodb_buffer_pool_size に対して設定します。たとえば、innodb_buffer_pool_size が 1000 MB で、このパラメータが 50 に設定されている場合、TokuDB テーブルは最大 500 MB を使用できます。
TokuDB テーブルがインスタンスの主要なワークロードである場合は、この値を増やしてください。
loose_max_statement_time
| プロパティ | 値 |
|---|---|
| サポート対象バージョン | MySQL 5.6 |
| 再起動の要否 | いいえ |
| 一時的な接続 | いいえ |
クエリの最大実行時間をミリ秒単位で設定します。この制限を超えたクエリは中断されます。デフォルトでは、クエリの持続時間は無制限です。
症状:制限を超えると、次のエラーが発生します:
ERROR 3006 (HY000): Query execution was interrupted, max_statement_time exceeded
-
このパラメータへの変更は、新しい接続に対してのみ有効になります。既存の接続は、新しい値が適用されるために再接続する必要があります。
-
MySQL 5.6 では、SQL の最大実行時間は
loose_max_statement_timeとloose_max_execution_timeの両方によって制御されます。変更を確実に有効にするには、両方のパラメータを同時に変更してください。
インスタンスでクエリ時間の制限を強制する必要がある場合に、このパラメータを設定します。