キャッシュ最適化PHPデータ
条件が限られているためMemCacheはありませんが、「地域情報、各種ツリー分類、グローバルメニューリンク」などの情報をデータベースから直接取得すると多くの場所にあります。は本当に遅すぎるし、a ページ内のステートメントが多すぎるため、この種のデータはハードディスクに直接保存し、必要なときにハードディスクから直接読み込む方法が採用されています。IO が耐えられるかどうかを確認するためのストレス テストを行うためのツールを自分で作成します。キャッシュを追加するだけで非常に高速に作成できます。
MemCache がない場合は、mysql を使用してメモリ テーブルを作成できます。または、mysql キャッシュを増やすこともできます。
最良のことはメモリを読み取ることです。つまり、キャッシュがメモリに配置されることです。具体的には、ls が言ったことと、ファイルがハードディスクに配置されることです。データベースを読み取るのと 50 ステップの違いのように感じます。と百歩譲ってハードディスクがボトルネックです
条件が限られているためMemCacheがないのですが、「地域情報、各種ツリー分類、グローバルメニューリンク」などの情報が遅すぎるところが多いです。データベースから直接取得するには
クエリとプログラムを最適化することが最善です。
私のアプローチを説明しましょう:
私のウェブサイトには巨大な分類テーブルがあり、この分類テーブルは複数のレベルに分かれており、各レベルにはこのカテゴリの下にニュース項目がいくつあるかが保存されています。カテゴリテーブルを再度読み込み、ニュースを追加するときにのみ呼び出される関数を作成しました。その機能は、各カテゴリにどれだけの数があるかを計算することです。計算が完了したら、カテゴリを再結合します。この方法では、配列を表示するときに、フロント デスクは php ファイルを取得して配列出力を走査する必要があるだけです。データベースを再読み込みします
つまり、データベース内のカテゴリを事前に読み込んで配列に統合し、表示するときにこの php ファイルを読み込む必要はありません。
条件が限られているため、MemCache はありません。
この文はあまり明確ではありません。memcache はサーバーの高度な構成を必要としません。
また、現在のファイル読み取りの習慣に従って、jmeter を使用してストレス テストを実行できます。ストレス テスト用のツールは多数あります。
ioは今のところ問題ないですが、アクセスが増えるとやはりボトルネックになってしまいます。 。 。
どのように変更しても、現在の機能には影響しないため、大きな変更は行わないことをお勧めします。
私は通常、データの内容を確認するためにファイルストレージとmemcacheを使用します
ローカルキャッシュにはjsを使用できます
mysqlクエリキャッシュを使用することをお勧めします。この方法は、使いやすさ、柔軟性、透明性が最も優れています。この要件、パフォーマンスはそれほど厳しいものである必要はありません。
私の意見では、memcache は 2 つのセッション (ページ) 間のデータ交換には適していますが、キャッシュには適していません。