1

次のようなテーブルReadNewsがあります。

id: int
User_id: int
News_id : int
DateRead : Datetime
FacebookUser_id: int

これはテーブルに保存されます。

fbへのREST呼び出しを介して、友達のIDリストを取得IEnumerable<string>し、メモリに保存しています。

友達が読んだ最新のニュースを(IEnumerable<string>)日時の降順で見つける必要があります。NHibernateを使用しています。

このクエリを作成する最も効率的な方法は何ですか?

基本的に私はfbユーザーが読んだニュースをすべて持っていますが、友達に読んでもらいたいのは1つだけです。

私はやろうと思っていました:

select * from readnews where FacebookUser_id in (IEnumerable<string>);
4

2 に答える 2

1

パフォーマンスの問題を見つけましたか?FacebookUser_idのトップn+インデックスは問題なく動作するはずです。

それはすべてあなたが持っているデータの量などに依存します。問題がないかどうか自問してみてください。時期尚早の最適化を試みていませんか?

于 2012-04-30T17:25:49.543 に答える
1

原則として、すべて適切にインデックスが作成されている場合は、IN(x、y、z)を使用するとかなりパフォーマンスが高く、linq/nhを使用すると問題なく処理できます。ただし、nhibernaterinoを試してみてください。

http://nhprof.com/

于 2012-04-30T17:29:57.383 に答える