MySQL 8.0 リファレンスマニュアル  /  MySQL データディクショナリ  /  ディクショナリオブジェクトキャッシュ

14.4 ディクショナリオブジェクトキャッシュ

ディクショナリオブジェクトキャッシュは、以前にアクセスしたデータディクショナリオブジェクトをメモリーに格納して、オブジェクトの再利用を可能にし、ディスク I/O を最小限に抑える共有グローバルキャッシュです。 MySQL で使用される他のキャッシュメカニズムと同様に、ディクショナリオブジェクトキャッシュでは LRU ベースの削除戦略を使用して、メモリーから最も使用頻度の低いオブジェクトを削除します。

ディクショナリオブジェクトキャッシュは、様々なオブジェクト型を格納するキャッシュパーティションで構成されます。 一部のキャッシュパーティションサイズ制限は構成可能ですが、その他の制限はハードコードされています。

  • テーブルスペース定義キャッシュパーティション: テーブルスペース定義オブジェクトを格納します。 tablespace_definition_cache オプションでは、ディクショナリオブジェクトキャッシュに格納できるテーブルスペース定義オブジェクトの数に制限を設定します。 デフォルト値は 256 です。

  • スキーマ定義キャッシュパーティション: スキーマ定義オブジェクトを格納します。 schema_definition_cache オプションでは、ディクショナリオブジェクトキャッシュに格納できるスキーマ定義オブジェクトの数に制限を設定します。 デフォルト値は 256 です。

  • テーブル定義キャッシュパーティション: テーブル定義オブジェクトを格納します。 オブジェクト制限は max_connections の値に設定され、デフォルト値は 151 です。

    テーブル定義キャッシュパーティションは、table_definition_cache 構成オプションを使用して構成されたテーブル定義キャッシュと並行して存在します。 どちらのキャッシュにもテーブル定義が格納されますが、MySQL サーバーの様々な部分に対応します。 一方のキャッシュ内のオブジェクトは、他方のキャッシュ内のオブジェクトの存在に依存しません。

  • ストアドプログラム定義キャッシュパーティション: ストアドプログラム定義オブジェクトを格納します。 stored_program_definition_cache オプションでは、ディクショナリオブジェクトキャッシュに格納できるストアドプログラム定義オブジェクトの数に制限を設定します。 デフォルト値は 256 です。

    ストアドプログラム定義キャッシュパーティションは、stored_program_cache オプションを使用して構成されたストアドプロシージャおよびストアドファンクションキャッシュと並行して存在します。

    stored_program_cache オプションは、接続ごとにキャッシュされるストアドプロシージャまたはファンクションの数に弱い上限を設定し、接続がストアドプロシージャまたはファンクションを実行するたびに制限がチェックされます。 一方、ストアドプログラム定義キャッシュパーティションは、他の目的でストアドプログラム定義オブジェクトを格納する共有キャッシュです。 ストアドプログラム定義キャッシュパーティションにオブジェクトが存在しても、ストアドプロシージャキャッシュまたはストアドファンクションキャッシュにオブジェクトが存在するかどうかには依存しません。その逆も同様です。

  • 文字セット定義キャッシュパーティション: 文字セット定義オブジェクトを格納し、256 のハードコードされたオブジェクト制限を持ちます。

  • 照合定義キャッシュパーティション: 照合定義オブジェクトを格納し、256 のハードコードされたオブジェクト制限を持ちます。

ディクショナリオブジェクトキャッシュ構成オプションの有効な値の詳細は、セクション5.1.8「サーバーシステム変数」 を参照してください。


関連キーワード:  定義, オブジェクト, キャッシュ, 格納, ディクショナリオブジェクトキャッシュ, テーブル, 制限, ストアドプログラム, スキーマ, 構成