• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:[MySQL]全くクエリーキャッシュされない)

[MySQL]クエリーキャッシュが全くされない理由と対処法

このQ&Aのポイント
  • MySQL 5.0.77を使用しています。クエリーキャッシュを使用する設定にしているにも関わらず、全くキャッシュされません。そこで、クエリーキャッシュがされない理由と対処法を教えてください。
  • クエリーキャッシュを使用する設定にしているにも関わらず、MySQL 5.0.77でのクエリーキャッシュがまったく機能していません。クエリーキャッシュがされない理由とその対処法を教えてください。
  • MySQL 5.0.77を使用していますが、クエリーキャッシュが全く機能していません。クエリーキャッシュがされない理由と対処法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

phpに詳しくなく、MySQLにどういう要求が出るのか分かりませんが、MySQLのマニュアルのクエリキャッシュの説明で、次のような記述がありました。 http://dev.mysql.com/doc/refman/5.1/ja/query-cache.html 「 注意:クエリ キャッシュは、サーバ サイドの準備されたステートメント (準備文) には使用できません。サーバ サイドの準備文がある場合には、クエリ キャッシュの条件を満たしません。 」 prepare + execute での実行は、対象外と言っているようです。 「え?なぜ?」とも思い、英語版ではどう書かれているのか確認してみました。 http://dev.mysql.com/doc/refman/5.1/en/query-cache.html 「 Note As of MySQL 5.1.17, the query cache is used for prepared statements under the conditions described in Section 7.5.5.1, “How the Query Cache Operates”. Before 5.1.17, the query cache is not used for prepared statements. 」 意味は分かりますよね?

may_flower
質問者

お礼

5.1へのバージョンアップと現状維持で、天秤にかけてみます。 ありがとうございました。

その他の回答 (2)

回答No.2

当方、MySQL 5.1.36で、MySQL Command Line Clientで確認してみましたが、クエリキャッシュは利用されているよう(SHOW STATUSでの結果が変わっていく)です。 提示された”限定的な具体的な情報”の範囲では、問題ないようです。 >クエリは、シンプルなものですよ。副問い合わせなどは使用してません。 ・シンプルかどうか ・シンプルであっても、MySQLのクエリキャッシュを使用できる条件を満たしているのか といったことは、具体的な提示がないのでアドバイスしようがありませんから、もう一度、見直してもらうしかないです。 例えば、シンプルであっても、 ・大文字と小文字 ・空白の数 ・関数の使用 といったことでも違うものとして扱われます。 設定はどこでやっていて(SETコマンドでの動的変更の有無など)、その結果はどのタイミングで確認しているのでしょうか? キャッシュに入らないということ自体、どんなSELECT文なのでしょうかね? また、MySQL Command Line Client、phpMyAdmin等でやってみて、どこに問題があるか絞ってみては?

回答No.1

細かく見ていませんが、どういうSQLを、どういう方法で実行しました?

may_flower
質問者

補足

クエリは、シンプルなものですよ。副問い合わせなどは使用してません。 Apache → PHP → MySQL WEBサイトにアクセスがある度、同一のクエリが何度も実行されます。

関連するQ&A