2011-07-26 9 views
2

私はVB.NETでソーシャルネットワーキングアプリケーションを作成しています。ターゲットユーザーベースは1〜200万人です。ソーシャルネットワーキングウェブサイト - メモリ(「SQL」なし)に「ユーザー検索」を実装する最も効果的な方法は何ですか?

すべてのユーザーデータは、国、地域、年齢などのプロパティが公開された「ユーザー」オブジェクトの辞書にメモリーされます。私はメモリ内の複数のユーザープロパティに対して検索を実行する必要があります - 私はSQLを使用していません。

複数のプロパティに対して 'ユーザー検索'を実装する最も効果的な方法は何ですか?

追加情報 私は現在、(非検索)検索のほとんどは、ユーザーID経由になるように細かい辞書、のためのキーとしてユーザーIDを使用しています。私はキーとして他のユーザープロパティを使用して複数の辞書をインデックスとして使用することを検討していますが、これは実行可能でしょうか?私は本当にすべてのユーザーの徹底的な繰り返し検索を避けようとしています。

答えて

1

おそらくLINQ to Objectsですが、特にUserオブジェクトのプロパティを変更できる場合は、100万人のユーザーを計画している場合は複数の辞書リストを使用します。 (例えば、UserNameのすべてのユーザーがAで始まり、B-Cは別のリストに入ります。)

+0

DictionaryのHashTable実装はパフォーマンス上の問題なしで1Mエントリを処理するという印象を受けましたか?私はこれをもう少し調べる必要があるかもしれません - とにかく検索の問題を脇に置いています。 – Satellite

+0

私は、多くの更新がいくつかの共有メモリ上で作成しようとしているときにロックが多すぎるとパフォーマンスの問題が発生すると思います。それを分けておくと、アップデートが完了したときにユーザーの全リストをロックする必要はありません。 – N0Alias

+0

ご清聴ありがとうございます。それはかなり書き込みライトのアプリケーションですが、これは本当にラインの下で問題になる可能性があります。 – Satellite

関連する問題