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