query_cache_compress_entries
クエリキャッシュ内のエントリを圧縮します。これにより、クエリキャッシュのメモリ使用量は削減されますが、クエリキャッシュへの挿入やクエリキャッシュからの読み取りは遅くなります。 設定可能な値:- 0 - 無効
- 1 - 有効
query_cache_for_subqueries
有効にすると、サブクエリの結果が query cache に書き込まれたり、そこから読み込まれたりするようになります。これにより、use_query_cache がすべてのサブクエリに伝播されます。
設定可能な値:
- 0 - 無効
- 1 - 有効
query_cache_max_entries
現在のユーザーがインメモリの query cache に保存できるクエリ結果の最大件数です。0 は無制限を意味します。 この制限は、ディスク上のquery cache (設定query_cache_on_disk_cache_name) には適用されません。ディスク上のquery cacheのエントリは、この設定ではなく、基盤となるファイルシステムキャッシュのサイズによって制限されます。
設定可能な値:
- 0 以上の整数。
query_cache_max_size_in_bytes
現在のユーザーがインメモリの query cache に割り当てられるメモリの最大量 (バイト単位) 。0 は無制限を意味します。 この制限は、ディスク上のquery cache (設定query_cache_on_disk_cache_name) には適用されません。ディスク上のquery cacheのエントリは、基盤となるファイルシステムキャッシュのサイズによって上限が決まります。
設定可能な値:
- 0 以上の整数。
query_cache_min_query_duration
クエリの結果をクエリキャッシュに保存するために、そのクエリが実行されている必要がある最小時間 (ミリ秒単位) 。 設定可能な値:- 0 以上の整数。
query_cache_min_query_runs
query cache に結果が保存されるまでに、SELECT クエリが実行される必要がある最小回数。
設定可能な値:
- 0 以上の整数。
query_cache_nondeterministic_function_handling
rand() や now() などの非決定論的関数を含む SELECT クエリを、query cache がどのように扱うかを制御します。
設定可能な値:
'throw'- 例外をスローし、クエリ結果を cache しません。'save'- クエリ結果を cache します。'ignore'- クエリ結果を cache せず、例外もスローしません。
query_cache_on_disk_cache_name
query cacheのエントリをディスク上に保存するファイルシステムキャッシュ (サーバー設定のfilesystem_caches セクション内のエントリ) の名前です。名前が指定されている場合 (かつ use_query_cache が有効な場合) 、クエリ結果は指定されたファイルシステムキャッシュにも追加でキャッシュされ、そこからも結果が返されます。ディスク上のquery cacheは、インメモリのquery cacheより大きな容量を確保でき、サーバーを再起動しても失われず、インメモリのquery cacheとは独立して動作します。具体的には、設定 enable_reads_from_query_cache_on_disk および enable_writes_to_query_cache_on_disk によって、インメモリのquery cacheとは別に制御されます。ファイルシステムキャッシュ内のこれらのエントリは、ファイルシステムキャッシュの通常のエントリとして扱われます。つまり、削除から保護されることはなく、キャッシュ内の他のデータと同じルールで追い出されます。SYSTEM CLEAR FILESYSTEM CACHE '<name>' を実行すると、これらのエントリはファイルシステムキャッシュ内の他のすべてのデータとともに削除されます。一方、SYSTEM CLEAR QUERY CACHE は、この設定で指定されたファイルシステムキャッシュからディスク上のquery cacheのエントリのみを削除し、その他のデータはそのまま残します。クエリ結果専用のファイルシステムキャッシュを用意することを推奨します。
設定可能な値:
- 空文字列 - ディスク上のquery cacheは無効になります
- 事前に設定済みのファイルシステムキャッシュの名前
query_cache_on_disk_codec
ディスク上のquery cacheのエントリに使用する圧縮コーデックです (query_cache_on_disk_cache_name を参照) 。この設定が影響するのは書き込みのみです。圧縮データは自己記述的であるため、読み取りはこの設定とは無関係に行われます。query_cache_share_between_users
有効にすると、クエリキャッシュにキャッシュされたSELECTクエリの結果を、他のユーザーも参照できるようになります。
セキュリティ上の理由から、この設定を有効にすることは推奨されません。
設定可能な値:
- 0 - 無効
- 1 - 有効
query_cache_squash_partial_results
部分的な結果ブロックを、サイズが max_block_size のブロックにまとめます。query cache への挿入のパフォーマンスは低下しますが、cache エントリの圧縮効率は向上します (query_cache_compress-entries を参照) 。 設定可能な値:- 0 - 無効
- 1 - 有効
query_cache_system_table_handling
クエリキャッシュ がシステムテーブル、つまりsystem.* および information_schema.* データベース内のテーブルに対する SELECT クエリをどのように扱うかを制御します。
設定可能な値:
'throw'- 例外をスローし、クエリ結果をキャッシュしません。'save'- クエリ結果をキャッシュします。'ignore'- クエリ結果をキャッシュせず、例外もスローしません。
query_cache_tag
query cache のエントリに付けるラベルとして機能する文字列です。 タグが異なる同じクエリは、query cache では別のものとして扱われます。 設定可能な値:- 任意の文字列
query_cache_ttl
指定した秒数を過ぎると、query cache 内のエントリは古いものと見なされます。 設定可能な値:- 0 以上の整数。