重複の可能性:
インメモリ コレクションの Linq パフォーマンス
約 100 万人のユーザーを持つ Web アプリケーションがあります。そのアプリケーションのほぼすべての Web ページが GetUser() メソッドを呼び出します (アクティビティ ストリームのファースト ネームやその他のユーザーの詳細をロードするため)。現在、呼び出しごとにデータベースにアクセスしています。すべてのユーザーをメモリにキャッシュし、Linq を使用してそこから検索結果または GetUser() をフェッチすることを考えています。
私の唯一の問題は、すべてのユーザーを (メモリ内に) キャッシュすることが良い考えかどうかです。RAMを無駄にしていますか?個人的には、RAM からのフェッチは DB からのフェッチよりもはるかに高速だと思います (DB が最適化され、インデックス化されている場合でも)。
キャッシュの検証/更新などを既に処理していることに注意してください。
stackoverflow はすべてのユーザーをキャッシュしますか?