MySQLのキャッシュ

オリジナル住所:https://www.cnblogs.com/leixuesong/p/5388292.html

詳細なquery_cache_size = 32M query_cache_type = 1を起動し、引数のMySQLのキャッシュ方法デフォルトの設定は、MySQLは、この機能が有効になっていない、次のようなショーの変数によっては「%query_cacheの%」かもしれない。その変数have_query_cache値がyesのでしょう、 MYSQLの初心者が簡単に代わってYESに、このパラメータはクエリキャッシュが実際に間違って開かれたことを考えることができ、このパラメータはクエリキャッシュが実際に別のパラメータの値を見ることが開いているかどうか、MYSQLサポートクエリキャッシュの現在のバージョンを示します。query_cache_size 0の値は、デフォルトの設定は0に設定されているクエリキャッシュを無効にします。

MYSQL:次の構成ファイルまたはのmy.cnfのmy.ini見出さ
= 0 query_cache_size

直接ではなく、実際のクエリ処理を行い、MYSQLはキャッシュクエリ結果のクエリキャッシュを選択し、同じクエリ要求を受信した次回リターン結果が、そうでない場合は、この機能を使用する必要はありません、あなたは少し変更データ表で、同一または類似のクエリの多くを持っていることを提供し、そのようなクエリキャッシュは、クエリのパフォーマンスの最適化をクエリの速度を向上させることができますがあります。あなたの現在のシステムの現在の値がQcache_lowmem_prunes変数によって負荷値を満たしているかどうかを確認することができます。注意:あなたがテーブルを照会する場合は、より頻繁に更新し、めったに同じクエリを持っていない、それはクエリキャッシュを使用しないことをお勧めです。

MYSQLクエリキャッシュ固有の設定:
1。特定のサイズにQuery_cache_size、特定のサイズは、実際の数は、クエリに依存するが、好ましくは1024の複数の基準値32Mに設定されています。
2。query_cache_type = 1:行を追加します。
オプション項目が以下に記載されているようquery_cache_typeパラメータは、単に値セットに注意を払っていない、キャッシュのタイプを制御するために使用されるだけでなく、デジタルに設定する必要があります:

開始とパラメータの説明のためのMySQLのキャッシュ方法
0に設定すると、それは言うことができる、単にあなたのキャッシュを行います無効と同等の使用はありません。しかし、この場合のシステムのサイズは、あなたがそれを割り当てるかどうか、この問題をテストする必要があります設定query_cache_size?
1に設定する場合は、select文のSQL_NO_CACHEクエリキャッシュが無効になっている使用しない限り、すべての結果は、キャッシュされます。
2に設定した場合、あなただけがselect文でSQL_CACHEキャッシュされたクエリによってキャッシュを指定する必要があります。
OK、次のようにコンフィギュレーションファイルの一部の後:

query_cache_size = 128M
query_cache_type = 1
、ファイルを保存MYSQLサービスを再起動し、実際にクエリで開くことを確認してください:

MySQLの>「%のquery_cacheの%」のような変数を表示します。

+ --- + ---- + -------

|変数名|価値|

+ ---------- + ---- +

| have_query_cache | YES |

| query_cache_limit | 1048576 |

| query_cache_min_res_unitの| 4096 |

| query_cache_size | 134217728 |

| query_cache_type | ON |

| Query_cache_wlock_invalidate | OFF |

+ ---------- + ---- +

SET(0.00秒)での6行

主に同じ値query_cache_sizeを見ると、私たちとのセットかどうかquery_cache_typeする:
ここでの値query_cache_sizeは134217728です134217728 * 1024 * 1024 = 128:私たちは、実際には同じ、ちょうど別のユニットは、自分の下に変換することができている、128Mを設定します。1に設定query_cache_typeは、ディスプレイがONで、すでに述べました。

要するに、ディスプレイの上部には設定が正しいですが、クエリが実際のクエリにキャッシュすることができるならば、あなたも、私たちは「%Qcacheの%」のような状態を表示することができます手動テストを必要と表し見るために 、 文はテストするために、そして今、私たちはクエリキャッシュを開きました機能クエリを実行する前に、我々は関連するパラメータの値を見て:
MySQLの>「%Qcacheの%」のようなステータスを表示します。

+ --------- + ---- +

|変数名|値|

+ - + ---- + --------

| Qcache_free_blocks | 1 |

| Qcache_free_memory | 134 208 800 |

| Qcache_hits | 0 |

| Qcache_inserts | 0 |

| Qcache_lowmem_prunes | 0 |

| Qcache_not_cached | 2 |

| Qcache_queries_in_cache | 0 |

| Qcache_total_blocks | | 1

+ --------- + ---- +

SET(0.00秒)での8行

:役割がここにこうしていくつかのパラメータに解釈
Qcache_free_blocksは:クエリキャッシュことを示しています表示された値が大きい場合、残りのブロックの数が、現在存在する、クエリキャッシュメモリの断片化があまりにも多く、おそらく特定の時間に終了します。
Qcache_free_memory:クエリキャッシュメモリのサイズは、このパラメータは明らかに現在のシステムクエリメモリが十分にある知ることができ、十分なあまり、またはではない、DBAは、実際の状況に応じて調整を行うことができます。
Qcache_hits:何回キャッシュヒットを示しています。私たちは、この値によって、私たちの主なクエリキャッシュの効果を確認することができます。より高い数、より理想的な緩衝効果。
Qcache_inserts:SQL要求に新しいがキャッシュに存在し、クエリ処理を実行しなければならなかった、クエリはクエリキャッシュへの挿入を実行した後、結果を処理していなかったことを意味する、何回ミスを示し、その後挿入します。このような場合の数は、より多くの数、クエリキャッシュを示すために、アプリケーションは、効果が理想的ではない、比較的小さいです。システムは始まったばかり、クエリキャッシュが空であるもちろん、これは正常です。
Qcache_lowmem_prunes:このパラメータは、クエリキャッシュから削除されるメモリ不足のためクエリの数を記録します。この値により、ユーザーが適切にキャッシュサイズを調整することができます。

Qcache_not_cached:query_cache_typeがキャッシュされずに設定するので、クエリの数を表します。

Qcache_queries_in_cache:クエリの数、現在のバッファキャッシュ。

Qcache_total_blocks:ブロック・キャッシュの現在の数。

私たちは下のテスト下:
たとえば、次のクエリを実行
ユーザーからのMySQL> SELECT *をWHERE上記のid = 2;

+ - + --- +

|名前| |上記のIDを述べ

+ - + --- +

| 2 | test2と|

+ - + --- +

セット(0.02秒)に1行が

次に「%Qcacheの%」のような表示状態で行われる 、 変更内容を確認:

MySQLは>「%% Qcache」のような状態を示し、

+ --------- + --- - +

| VARIABLE_NAME |値|

+ --------- + ---- +

| Qcache_free_blocks | 1 |

| Qcache_free_memory | 134 207 264 |

| Qcache_hits | 0 |

| Qcache_inserts | 1 |

| Qcache_lowmem_prunes | 0 |

| Qcache_not_cached | 3 |

| Qcache_queries_in_cache | 1 |

| Qcache_total_blocks | 4 |

+ --------- + ---- +

SETに8行(0.00秒)

コントラストパラメータ値は、フロント、我々はQcache_insertsが変更されました。Qcache_hitsは、同じクエリで私たちの下に、変更されていない
ID = 2は、ユーザから選択* 、 一時的に読者には関係しないQcache_inserts値は他のパラメータに(同じ値の変更をされるべきであるQcache_hitsは、1に等しくなければならない:前の理論的分析に従って)テストは、再び実行します。

'%Qcacheの%'のようなステータス表示は、変更内容を参照してください

> MySQLを'%Qcacheの%'のようなステータスを表示します。
+ --------- + ---- +

|変数名|値|

+ --------- + ---- +

| Qcache_free_blocks | 1 |

| Qcache_free_memory | 134 207 264 |

| Qcache_hits | 1 |

| Qcache_inserts | 1 |

| Qcache_lowmem_prunes | 0 |

| Qcache_not_cached | 4 |

| Qcache_queries_in_cache | 1 |

| Qcache_total_blocks | 4 |

+ --------- + ---- +

SET中8行(0.00秒)

OK、私たちには本当にまったく同じ分析。

おすすめ

転載: www.cnblogs.com/phpk/p/10938072.html