2008-08-31 8 views
9

MySQL queriesをキャッシュするか、それが失敗するという簡単な方法がありますか?それは誰かが書いて作成したものですか?私はページ全体をキャッシュすることができますが、データの変更によっては機能しませんが、キャッシュされない部分をキャッシュしたいものもあります。MySQLのクエリをキャッシュする

答えて

1

私はクエリキャッシュのサイズはオフになっているデフォルトでは、0だと思います。 my.cnfファイルを編集して、少なくとも数メガバイトにします。 PHPを変更する必要はありません:)

+0

私は多くのUbuntu/Debianサーバにmysqlをインストールして設定を確認したので、キャッシュはデフォルトで有効になっています。 'query_cache_limit = 1M'と' query_cache_size = 16M ' – shgnInc

1

試してみると完全に過剰ですが、eAcceleratorまたはmemcacheがあります。定期的に変更されるクエリとそうでないクエリがある場合、mysqlはすべてのdbクエリを同じ時間キャッシュする必要はありません。

上記のようなキャッシュエンジンを使用すると、クエリごとにデータをキャッシュする期間を決めることができます。ヘッダーのデータが頻繁に変更されることはなく、現在キャッシュに入っているかどうかを確認できます。返された場合はそれを返し、それ以外の場合はクエリを実行して、寿命がNのキャッシュに入れます各ページの負荷がN秒になると、MySQLに近づかずにキャッシュからデータが取り出されます。 これで、必要に応じてキャッシュをバイパスして、他のデータをデータベースから「ライブ」することができます。

4

Zend Cacheを使用すると、クエリの結果を他のものと一緒にキャッシュできます。

0

ページキャッシュのルート全体をお勧めします。データの一部が変更された場合は、単に動的データの代わりにトークン/プレースホルダを配置します。これらのトークンを含むページ全体を所定の場所にキャッシュし、トークンのキャッシュデータのトークンを後処理します。これで、動的コンテンツを含むキャッシュページが作成されました。

関連する問題