专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 高性能WEB开发

请问一个需求的高性能实现

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
请教一个需求的高性能实现
大家好,有这样的一个需求,使用我的手机客户端软件的人很多,我在后台记录下了很多人的浏览日志,并维护在一张表中,表的记录数大约有1000万,现在某个手机客户端用户有N个好友(例如300个),我需要查询这N个好友的浏览日志,并进行分页。如何才能高效实现,多谢!
------解决方案--------------------
这个命题难度其实不小,相当于微博(所关注对象的转发信息)的需求了。

我不清楚微博的数据模型是怎么设计的,所以只能提点我自己的想法了:
1、无限时间范围的查询是不合理的,而且支持难度很高;
2、预处理是必需的,否则每次检索和排序的开销比较高,尤其是排序要设法避免,因为如果要进行排序(按时间)就意味着所有数据都必须检索出来后才能开始排序;

大致设计如下:
◎ 设计一张当期浏览日志表,字段:浏览时间、浏览者ID、浏览ID、其它浏览信息;
  主键:浏览时间、浏览者ID、浏览ID,簇集索引。
◎ 该表信息应该以特定时间周期(比如一个月)来保持一定规模,不能无限制扩大;
  超过该时间范围的浏览信息,可以移入另一张表:“近期浏览日志表”
◎ 检索时先把朋友Select出来,然后再使用In来进行检索;因为簇集索引第一字段是时间,所以不需要再使用OrderBy关键字;注意限制返回记录数,不要一次性返回所有。


以上是初步想法,如果是类似微博的要求,这个肯定是不够的,还需要更多的空间(内存、磁盘)和预处理来换取时间。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: