■実現したいこと
周期的に重たいSelect文を発行するシステムで、query_cacheを利用して、重たいSelect文の応答時間短縮やサーバー負荷を軽くしたいと思っています。
※重たいSelect文の中身は固定ですが、拾ってくるテーブルの一部のレコードは絶えず変化しています。
■今の状況
重たいSelect文の応答速度は変わらず(35秒程度)、キャッシュが利用されていないように見受けられます。
キャッシュが利用されるようにしたいのですが、何が間違っているのかよく分かりません。
■再現手順
MySQLのバージョンです。 ※ Dockerで環境を作っています。
mysql> select version(); +-----------+ | version() | +-----------+ | 5.1.73 | +-----------+
キャッシュの設定はこのようになっています。
mysql> SHOW VARIABLES LIKE '%query_cache%'; +------------------------------+---------+ | Variable_name | Value | +------------------------------+---------+ | have_query_cache | YES | | query_cache_limit | 1048576 | | query_cache_min_res_unit | 4096 | | query_cache_size | 999424 | | query_cache_type | DEMAND | | query_cache_wlock_invalidate | OFF | +------------------------------+---------+
上記の状態で、重たいSelect文を下記のように実行しています。
※ 何回実行しても、概ね35秒位で帰ってきます。
select SQL_CACHE ・・・・・
キャッシュの利用状況を確認すると、「Qcache_not_cached」がカウントアップしていきます。
ここで、キャッシュが使われていないと判断しています。
mysql> SHOW STATUS LIKE 'Qcache%'; +-------------------------+--------+ | Variable_name | Value | +-------------------------+--------+ | Qcache_free_blocks | 1 | | Qcache_free_memory | 982232 | | Qcache_hits | 0 | | Qcache_inserts | 0 | | Qcache_lowmem_prunes | 0 | | Qcache_not_cached | 9 | | Qcache_queries_in_cache | 0 | | Qcache_total_blocks | 1 | +-------------------------+--------+
■質問事項
0. Select文で使用するテーブルの一部が変化(insert,update)している場合、query_cacheを利用することは負荷軽減・速度改善に寄与しますでしょうか。
0. 上記の設定やSelect文の実行方法を行っても、query_cacheが利用されていないと思われる場合、何をチェックすればよろしいでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/10 05:50 編集
2020/03/10 06:04
2020/03/10 11:03
2020/03/11 02:03
2020/03/11 05:11