MySQLのクエリキャッシュについて
今まで、MySQLのクエリキャッシュを利用することに何の懸念も持っていなかったのだけど、以下のような意見があり、今後は少し気をつけようと思っています。
確かにヒット率という観点でみると、エンドユーザ向けのWebサービスでは、意味が無さそう。
今までMySQLのクエリキャッシュはは有効にしてたんですが、Webサービスだとキャッシュヒットするようなクエリはそんなに多くないし、どこかで見かけたんですが(失念…)クエリキャッシュをオフにしたら(逆に)パフォーマンスが上がっただか負荷が下がっただかというのも目にしたので、今度クエリキャッシュはオフにしようと思ってました。(どのみちヒット率悪いし)
MySQLで、指定したときだけクエリキャッシュする - (ひ)メモ
マルチコア環境という視点でも見てみると、DBサーバにある程度のCPU数があるならば、変にクエリキャッシュすると、マルチコア環境を活かせない可能性があるということですかね。
クエリキャッシュはCPUスケーラビリティが悪いので、8コアぐらいのマシンでInnoDB Pluginを入れて単純なクエリをゴリゴリ回すとクエリキャッシュなしの方が速い場合があります
はてなブックマーク - sh2のブックマーク / 2010年4月6日
設定方法
my.cnfの「query_cache_type」パラメータで設定するようです。「DEMAND」で設定しておくのがいいのかもしれません。