如何设计高效查询的排行榜(MongoDB & SQL)

2013-05-02 21:28:05 +08:00
 breeswish
我没有经过专业培训,因此经验不足,来请教大家一些可能是比较基本的数据库设计问题:

- 最近30天点击次数最多的文章 并显示点击数
- github的contribution graph

以上两个需求在MongoDB和SQL中如何进行设计才可以做到充分利用其优势呢?

对于第二个我想到在mongo中可以直接开一个map()来存储,而对于第一个我则是完全没有想法><想不出有什么简单方法可以做到查询时候不遍历的(mongodb/sql)

求大家的经验之谈 ^_^
6014 次点击
所在节点    MongoDB
7 条回复
ritksm
2013-05-02 21:38:05 +08:00
第一个。。。Redis。。。一个Sorted Set搞定。。。每30天清空一次
breeswish
2013-05-02 22:11:51 +08:00
@ritksm 最近30天好像不能这么做呢……每天都要去除第31天以前的
sugarit
2013-05-02 22:19:16 +08:00
第一种用redis的话会方便很多
ritksm
2013-05-02 22:53:04 +08:00
@breeswish 那就再加一个set是一天的文章然后每天一个cron根据这个set去删那个sorted set
ritksm
2013-05-02 22:54:47 +08:00
@breeswish 不对。。应该是另一个sorted set去减
ritksm
2013-05-02 22:55:34 +08:00
或者你可以每天建一个点击数的sorted set然后,需要的时候取30天的做一个union
breeswish
2013-05-03 22:32:12 +08:00
@ritksm 谢谢 :)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/67533

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX