V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐工具
RoboMongo
推荐书目
50 Tips and Tricks for MongoDB Developers
Related Blogs
Snail in a Turtleneck
breeswish
V2EX  ›  MongoDB

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

  •  
  •   breeswish · 2013-05-02 21:28:05 +08:00 via Android · 6111 次点击
    这是一个创建于 4221 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我没有经过专业培训,因此经验不足,来请教大家一些可能是比较基本的数据库设计问题:

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

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

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

    求大家的经验之谈 ^_^
    7 条回复    1970-01-01 08:00:00 +08:00
    ritksm
        1
    ritksm  
       2013-05-02 21:38:05 +08:00
    第一个。。。Redis。。。一个Sorted Set搞定。。。每30天清空一次
    breeswish
        2
    breeswish  
    OP
       2013-05-02 22:11:51 +08:00 via Android
    @ritksm 最近30天好像不能这么做呢……每天都要去除第31天以前的
    sugarit
        3
    sugarit  
       2013-05-02 22:19:16 +08:00 via iPad   ❤️ 1
    第一种用redis的话会方便很多
    ritksm
        4
    ritksm  
       2013-05-02 22:53:04 +08:00
    @breeswish 那就再加一个set是一天的文章然后每天一个cron根据这个set去删那个sorted set
    ritksm
        5
    ritksm  
       2013-05-02 22:54:47 +08:00
    @breeswish 不对。。应该是另一个sorted set去减
    ritksm
        6
    ritksm  
       2013-05-02 22:55:34 +08:00   ❤️ 1
    或者你可以每天建一个点击数的sorted set然后,需要的时候取30天的做一个union
    breeswish
        7
    breeswish  
    OP
       2013-05-03 22:32:12 +08:00 via Android
    @ritksm 谢谢 :)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1909 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 16:19 · PVG 00:19 · LAX 08:19 · JFK 11:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.