検索は当社のウェブサイトで最もよく使用される機能であり、検索クエリはdbをCPU上で実行するCPU集中型、複雑で頻繁なクエリです。 dbの負荷を軽減するために、さまざまなキャッシング戦略を検討してきました。今のところ、ASP.NETキャッシュを使用する予定です。asp.netでLinqを使用してキャッシュを照会
考えられるのは、最も頻繁に/最近作成された/アクセスされたオブジェクトのインメモリDBをキャッシュに格納し、linqを使用してメモリ内のdbに検索結果を提示することです。私の最初の考えは、ユーザーのリストをキャッシュし、linqを使用してこのリストを照会または変更することでした。しかし、リストにアクセスしたり、リストを変更しようとする複数のスレッドの複雑さを考えると、私は他のオプションを検討していました。
私は、リストをキャッシュする代わりに、そのIDをキーとして個々のユーザーオブジェクトをキャッシュし、キャッシュを試してみることを考えました。 http://msdn.microsoft.com/en-us/library/system.web.caching.cache.aspxで私はキャッシュが拡張メソッドAsQueryableを持っていることがわかりますが、これは何を意味するのか分かりません。キャッシュはキーの値のペアなので、AsQueryableではキーをクエリして一連のユーザーオブジェクトを取得できますか、またはユーザーオブジェクトをクエリして目的の結果を得ることができますか?
テキスト検索ではありません。実際、検索は基本的にはクエリであり、複数の結合とそれを遅くするユーザー定義関数があるということだけです。私が話していたLinqのアプローチは、少なくとも今のところ、正しいアプローチだと思います。とにかく、提案のおかげで。 – shashi