web-dev-qa-db-ja.com

query_cache_type = 0 vs query_cache_type = 1

最近、標準のMySQLからPerconaに移動し、 Percona Wizard を使用してmy.cnfを生成しました。

ただし、デフォルトでは、生成されたmy.cnfの設定はquery_cache_type = 0を使用していることがわかります。 (クエリキャッシュは無効です)。

私がサーバーで実行しているのはWordpressブログです。私の質問は次のとおりです。

  1. クエリキャッシュを有効にできますか?
  2. Wordpressデータベースキャッシュを提供するプラグインがいくつかあります。クエリキャッシュを有効にした場合と同様の結果になりますか?
7
bazaglia

Wordpressブログの場合、query_cache_type = 1。クエリキャッシュの主な問題は次のとおりです。

  1. 非常に簡単に無効化されます(一部のテーブルを更新すると、そのテーブルに関連するすべてのクエリが無効になります)

  2. 着信または発信クエリが通過する必要がある単一のミューテックスを持っています。

クエリキャッシュは、マシンに1つのコア(おそらく2つ)があった時代には問題ありませんでした。複数のコアと高い同時実行性ではうまく機能せず、書き込み集中型のアプリケーションではうまく機能しません。

あなたのWordpressブログは書き込み集中型ではない可能性が高いです:あなたの書き込みは新しい投稿、更新、コメントです...これらのどれだけですか?あなたは分単位でそれらに対抗することすらできません。 ..

それも実際には集中的に読み込まれることはありません。 1日あたり数百回の読み取りそれは何もありません。

プラグインに関しては、それはプラグインと配備に大きく依存します。 WordpressはPHPで記述されており、PHPはファイルシステム、memcached、APCなどのキャッシュメカニズムを使用する可能性があります。通常、特定のつまり、関連するデータへの実際の変更に基づいて、キャッシュされたデータを無効にします-一部のテーブルでの無関係な操作ではありません。プラグインのプログラマーは、どのデータをキャッシュすることが重要かを決定する必要があります。ではなく、無効化の仕組み。

繰り返しになりますが、ブログの規模では、これは大したことではなく、大きな違いはありません(もちろん、いくつかのクレイジーなプラグインが常に存在する可能性があります)。

結論:あなたのニーズのために、何でも行き、それはあまり重要ではありません。

5
Shlomi Noach

DBタイプによって異なります。 InnoDBを使用する場合、クエリキャッシュは必要ありません。さらに、クエリキャッシュは全体的なパフォーマンスの速度を低下させます。したがって、ワードプレスにMyISAMを使用する場合は、それを使用する必要があります。

0
junseok bae