情報をキャッシュする必要があるときはいつでも、タイムスタンプと MySQL を利用して、データをデータベースに保存し、その方法で取得していました。APCについて読みました。
APC は非常に簡単ですが、以前のキャッシュ メソッドを変換して APC に切り替える価値はありますか?
すでにデータベースを実行していて、ほとんどのことを行っている場合、パフォーマンスを改善するための最初のステップは、データベースを適切に調整することです。適切に構成された MySQL は非常に高速です。明らかに、ある時点で速度が十分ではなくなり、追加のキャッシュが必要になります。キャッシュする際に考慮すべきことの 1 つは、データの一貫性が失われる可能性があることです。つまり、プライマリ ストア (データベース) のデータを更新する可能性がありますが、他のユーザーは古いキャッシュ エントリを読み取ることができます。
これで、考えられる解決策として APC を挙げました。APC は 2 つの関連性がありますが、異なるものです。
オペコード キャッシュは、コンパイルされた PHP スクリプトをメモリに保存することで機能します。そのため、サイトをリクエストするときに、PHP インタープリターはディスクからファイルを読み取ってコードを分析する必要はなく、直接実行できます。これは大きな後押しとなり、常に良いことです。
共有メモリ キャッシュは任意の PHP 変数 (いくつかの例外があります...) を取り、それをシステム内の共有メモリに格納するため、同じマシン上のすべての PHP プロセスがそれを読み取る可能性があります。したがって、データベース クエリの結果を APC 内に保存すると、共有メモリへのアクセスがデータベースのクエリ (クエリを別のマシンに送信し、解析し、実行し、結果を送り返す) に比べて非常に高速であるため、時間を節約できます。 )しかし、冒頭で述べたように、データが古くなっている可能性があることに注意する必要があります。また、すべてのデータがメモリに保存されることに注意してください。そのため、使用可能な RAM の量に応じて、保存できるものに制限があります。これのもう 1 つの大きな欠点は、データがメモリにのみ格納されることです。これは、システムがダウンするたびにキャッシュが空になり、そこにあるすべてが失われることを意味します。
質問に文字通り答えるには、はい。Mysql はキャッシュではありませんが、APC はキャッシュであるため、より優れています。
Mysqlはその上にキャッシュを実装するためのストレージオプションですが、言及したタイムスタンプとそれらを使用して実行しているロジックを使用してキャッシュを実装しています。APC は、データとコードの両方に対するキャッシュの完全な実装です。
パフォーマンスに関しては、ローカル APC キャッシュへのアクセスは、mysql データベースへのアクセスよりも常に無限に高速です。キーワードlocal、APC は配布されていない (私の知る限り) ため、キャッシュを共有する場合は、memcached などの外部キャッシュ システムが必要になります。
一般に、APC は MySQL よりもはるかに高速であるため、時間をかけて調査し、あるシステムから別のシステムへの切り替えを検討する価値があります。そして、あなたが言及したように、データベースへの SQL クエリの発行が少なくなります。
詳細については、Google を介して見つけることができます。以下に出くわしました。
http://www.mysqlperformanceblog.com/2006/08/09/cache-performance-comparison/