1

サイト データを含む最大 200 個のキーを持つ PHP 配列があり、すべてのユーザーに対してグローバルに共有されているとします。

この配列は SQL データベースから構築されているため、時間がかかりすぎます。この配列を保存します。

apc_store()配列を保存またはシリアル化することと、ディスク上のファイルに保存してから、またはシリアル化を解除.phpして取得することの違い (主に速度) は何ですか?apc_fetch()file_get_contents()

どちらが速いでしょうか?なぜファイルを使用しないのですか? キャッシュを使用する理由

EDITキャッシュの代わりにファイルを使用する理由の 1 つは (私にとって)、CRON を使用して CLI/shell/root からファイルにアクセスできることです。

4

1 に答える 1

3

最良から最悪へ:

  • APCインメモリで非常に高速です。自動的にシリアライズおよびアンシリアライズされます。
  • memcachedもメモリ内にあり、APC よりも少し遅いです。これは、サーバー間で同じキャッシュを使用できるという事実によって補われます。
  • unserialize(file_get_contents())ディスクをヒットする必要がありますが、php を解析するよりも高速です。APC、memcached、または同等のメモリ内キャッシュがない場合は、これで問題ありません。
  • var_export()includeディスクにヒットするだけでなく、ファイルを解析する必要があるため、文字列のシリアル化を解除するよりも遅くなります。プラス面は、必要に応じて配列を簡単に編集できることです。
  • serialize()php ファイルに保持されている変数に変換すると、ディスク ヒット、php の解析、およびデータのシリアル化解除という最悪の事態が発生します。

(データベースに適切なインデックスを設定することについても、何か言わなければならないことがあります。配列を構築するために 200 行をフェッチするのは遅くないはずです。)

于 2013-06-25T11:11:46.720 に答える