機能の説明
MySQLデータのSQL実行手順には、主に解析、準備、最適化、実行の4つの段階が含まれます。実行プランキャッシュ機能はprepare statement方式の場合にのみ作用します。prepare statement方式ではexecute時に解析と準備の2段階を省略し、実行プランによって最適化段階も省略できるため、パフォーマンスがさらに向上します。
MySQL 8.0 20210830バージョンでは(UK&PK)チェックに対してのみ作用しますが、今後のバージョンでは機能の範囲をさらに開放する予定です。
サポートするバージョン
カーネルバージョン MySQL 8.0 20210830およびそれ以降
ユースケース
クラウドオンライン上でショートクエリが比較的多く、かつprepare statement方式を使用している場合は、アプリケーションのパフォーマンスが向上します。具体的なパフォーマンスの上昇幅はオンライン業務によって異なります。
パフォーマンスへの影響
(UK&PK)をチェックするSQLについては、遅延パフォーマンスが20%~30%、スループットパフォーマンスが20%~30%それぞれ向上しました(sysbench中のpoint_select.luaテスト)。
メモリオーバーヘッドについては、プランキャッシュスイッチがオンの場合、オフの場合に比べてメモリ使用がやや上昇しました。
利用説明
cdb_plan_cacheスイッチを追加することでプランキャッシュをオンにするかどうかを制御し、cdb_plan_cache_statsスイッチを追加することでキャッシュのヒット状態の観察を制御します。これらのパラメータはtencentrootレベルです。
説明:
ユーザーは現在、上記パラメータのパラメータ値を直接変更することはできません。変更する場合は、チケットを提出から変更することができます。 show cdb_plan_cacheコマンドを追加して、プランキャッシュのヒット状態を確認します。フィールドの意味は次のとおりです:
|
| SQLステートメント。ここでは?の付いたSQLステートメントであり、このSQLの実行プランがすでにキャッシュされたことを表します |
| SQLキャッシュの方式は、現時点ではprepare方式のみサポートしています |
| |
cdb_plan_cache_statsスイッチがオンの場合は、情報が記録されることになるため、パフォーマンスに影響する場合があります。
関連ステータス説明
show profileによってSQLの各実行段階のステータスを確認する際、SQLを実行してプランキャッシュがヒットした場合は、optimizing、statistics、preparingステータスが省略されます。