アウトライン
クエリキャッシュSELECT文の結果と結果のデータを格納し、(クエリキャッシュは、QCを呼びます)。この概要はまた、メモも何かをする他に何もありません!
ワークス
次のようにクエリキャッシュは動作します:
SELECT結果セット・キャッシュ操作およびSQLステートメント、SQLへの鍵、クエリの結果セットの値。
キャッシュSQLクエリにキーとしてこれにSELECTステートメントに新しいならば、試合は、返されたキャッシュされた結果セットを置けば、
条件に一致する:まったく同じSQL文のキャッシュかどうか、SQLの文字は、Javaストリングの照合を使用して、SQLへの鍵、単純にキーと値のストレージ構造として理解、途中でSQLクエリ結果の値は大文字と小文字が区別され、スペースあり例えば、等号():
異なる場合ので一致しません、ユーザーからのAGEを選択するために、ユーザからの年齢を選択し、
利用者からの選択年齢での使用からSELECT年齢が異なる空間ので一致しません。
SQLのスペースを無視することができ、それはトリムを行ったキー操作の等号比較した後、さらに考えることができます。
ビューのMySQLの設定パラメータ
実行
「%のquery_cacheの%」のようなショーの変数。
あなたは、関連するパラメータを見ることができます:
query_cache_type:0クエリキャッシュが有効になっていません。1-有効、2対応、デフォルト値は0です。
query_cache_size:チーフは、キャッシュサイズを設定し、最小許容値は、推奨query_cache_sizeの40K、デフォルト1M、設定されている:64M / 128Mを。
query_cache_limit:単一のクエリのレコードセットのサイズをキャッシュできる最大キャッシュを制限し、デフォルトの設定は1Mです
彼らはクエリキャッシュの要件を満たしていることを提供し、1にquery_cache_type、クライアントクエリとレコードセットをキャッシュすることができ、もしSQLプラスSQL_NO_CACHEしませんキャッシュ。
SQL_CACHE、およびレコードのクエリキャッシュ、クライアントのクエリの要件を満たすと設定し、それをキャッシュすることができます:query_cache_typeは限りSQLパラメータが追加として、2です。
ビューのキャッシュの使用
「%Qcache %%」のようなショーのステータス。
あなたは、関連するパラメータを見ることができます:
Qcache_hits:キャッシュヒット;
Qcache_inserts:この番号がキャッシュされていないことに注意し、回数キャッシュ、キャッシュたびにプラス1を挿入します。
クエリキャッシュを有効にします
オプションquery_cache_type = 1を設定し、query_cache_size = 67108864を設定します。
注意:値は100メガバイト未満のquery_cache_sizeに設定されています。MySQLのクエリキャッシュはグローバルロック中で制御され、各更新クエリキャッシュ・メモリ・ブロックをロックする必要があります。
クエリキャッシュを閉じます
オプションquery_cache_type = 0を設定し、query_cache_size = 0を設定します。
該当シーン
頻繁には、同じ文のために提出され、テーブルのデータが非常に頻繁シーンなど、いくつかの静的なページなどの変更、または頻度の低いページを発生情報の変更の一部ではありません。
キャッシュ結果に最新のデータのクエリキャッシュ、そのデータテーブルの変更(挿入、更新、削除、またはそれ以外の変更は、動作データを生成してもよい)に、クエリキャッシュがリフレッシュされることになります。このように、周波数が非常に低く、シーンで非常に高い周波数の読み取り専用クエリ、クエリキャッシュを開くと、更新のために非常に有利です。
NAシーン
SQL文を含め、まったく同じに2つのSQLリクエストのクエリキャッシュ厳しい要件は、接続されたデータベース、プロトコルバージョン、文字セットおよびその他の要因に影響を与えます。次のクエリキャッシュは、いくつかのシナリオには適用されません。
- サブクエリ;
- プロシージャ、関数、トリガー、SQLで呼ばれるイベント、またはあなたは、これらの結果を参照してください。
- クエリが特殊な機能の数を含む場合、例えば:ベンチマーク()、CURDATE()、CURRENT_TIME()、CURRENT_TIMESTAMP()、NOW()、SLEEP()、CONNECTION_ID()、CURRENT_DATE()、CURRENT_USER()、PASSWORD()、 RAND()、UUID()、ENCRYPT()、LAST_INSERT_ID()などが挙げられます。
- mysqlの、INFORMATION_SCHEMAまたはperformance_schemaに関連するクエリ。
- 类似* FROM ...共有モードでロックをSELECT、UPDATE、SELECT..INTO OUTFILE / DUMPFILE ... FOR SELECT、SELECT ... autoincrement_colはNULL的查询され;
- 一時テーブルを使用するための実行計画を選択します。
- クエリは、例えば、1 + 2を選択して、任意のテーブルを参照しません。
- クエリは警告(警告)を発生します。
- SQL_NO_CACHEキーワードSELECTステートメントがあります。
- パーティションテーブルに関連します。
目に見える、非常にキャッシュされたクエリ制限を使用しました。読み取り専用としてシーンで使用され、いくつかの状況を更新したときに、クエリキャッシュを有効にすることを検討。