1

我有一个表 ReadNews 如下:

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

这存储在一个表中。

我通过对 fb 的休息调用和存储IEnumerable<string>在内存中来获取我的朋友 ID 列表。

我需要查找我的朋友(IEnumerable<string>)阅读的按日期时间降序排列的最新消息。我正在使用 NHibernate。

构建此查询的最有效方法是什么?

本质上,我拥有 fb 用户阅读的所有新闻,但我只想获得朋友阅读的新闻。

我正在考虑这样做:

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

2 回答 2

1

原则上,如果你都被适当地索引了,那么使用 IN(x,y,z) 是相当高效的,linq/nh 应该对你很好。试试 nhibernate rino 来确定。

http://nhprof.com/

于 2012-04-30T17:29:57.383 回答
1

您是否发现任何性能问题?FacebookUser_id 上的 top n + index 应该可以。

这完全取决于您拥有的数据量等。问问自己是否没有发现任何问题,您是否正在尝试过早优化?

于 2012-04-30T17:25:49.543 回答