MySQL クエリ キャッシュを理解し、いつ実装すればよいのでしょうか?

MySQL クエリ キャッシュを理解し、いつ実装すればよいのでしょうか?

現在の MySQL サーバーではクエリ キャッシュが有効になっています。

Qchache_hits: 31913 
Qchache_inserts: 50959
Qchache_lowmem_prunes: 9320
Qchache_not_chached: 209320
Qchache_queries_in_chace: 986

com_update: 0
com_delete: 0
com_Select: 10

クエリ キャッシュを完全に理解しているわけではありません。現在、それについて読んで理解しようとしています。

当社のデータベースには、在庫データ、顧客データ、従業員データ、売上データなどが保存されています。クエリが複数回実行されることはほとんどありません。クエリが 2 回実行される可能性は、特定の売上情報を 2 回表示することです。しかし、基本的にシステム内のすべては常に変化しています。常に更新、削除、挿入されており、ユーザーが 1 週間以内に同じクエリを 2 回実行するとは考えられません。

クエリ キャッシュを有効にする必要はありますか? 挿入によって 51,000 個のエントリが追加されたが、そのうち 986 個だけが格納されているということでしょうか?

キャッシュを更新し、1 週間監視して、キャッシュ内のクエリが毎週何回アクセスされているかを確認し、実際に何らかのメリットが得られているかどうかを確認するのはいかがでしょうか。

これに関する助言やアドバイスがあればありがたいです。

答え1

はい、51,000 エントリが追加されましたが、現在残っているのは 986 エントリだけです。つまり、キャッシュに追加されたがもう存在しないエントリは約 50,000 エントリあり、そのうち 9,000 エントリはキャッシュのメモリが不足したため、残りは挿入/更新によってキャッシュ エントリが無効になったためです。Com_select は、メリットを得ているかどうかを判断するときに知っておくと便利なパラメータです。ただし、実際には、キャッシュされているクエリによって大きく異なります。

キャッシュしてもメリットがないことが確実なSELECT文を実行している場合は、SELECT文にSQL_NO_CACHEを追加することができます。ドキュメントはこちら

読むことをお勧めしますこの記事(そしてそのブログ全般)。

関連情報