请教下背单词应用 (NodeJS + MongoDB) 的性能优化方案 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
vilicvane
V2EX    程序员

请教下背单词应用 (NodeJS + MongoDB) 的性能优化方案

  •  
  •   vilicvane
    vilicvane 2014-03-18 20:35:16 +08:00 4844 次点击
    这是一个创建于 4272 天前的主题,其中的信息可能已经有所发展或是发生改变。
    之前因为一个学长的建议使用了 MongoDB, 开发起来的确是挺方便的, 但是现在看到后台统计的写入时间还是心有余悸. 后台我反反复复改了好几次方案, 主要的问题是一个用户可能有几千上万条单词学习记录, 每次登录的时候都会读取出所有记录, 放在内存里.

    从数据库中读取几千条记录这个过程比较耗时. 目前学习记录数总共是 70 万. 今天看 log 发现其中一个用户有接近 6000 条记录了, 但是初始化花掉了一秒钟左右的时间. 这个时间是否可以接受? (现在用的是阿里云, 听说如果是 SSD 会棒很多?)

    因为最近基础功能基本上开发完了, 想接下来一边完善一边准备连接 SNS (打卡), 怕万一用户涨得快服务器撑不住. 加上自己是做前端的, 这方面懂得很少, 希望有经验的同学给点建议. 谢过先!
    15 条回复    1970-01-01 08:00:00 +08:00
    icevil
        1
    icevil  
       2014-03-18 21:27:35 +08:00
    为什么每次登录的时候要一次性读取全部的学习记录?
    vilicvane
        2
    vilicvane  
    OP
       2014-03-18 21:42:38 +08:00
    @icevil 主要是单词背诵的时候优先级计算稍微复杂, 不好估计说那些单词是今天或者短时间内会用到的, 所以只好全部拿出来, 先选出几个优先级对应的候选单词, 再在各个优先级中排序.
    notcome
        3
    notcome  
       2014-03-19 06:55:58 +08:00 via iPhone
    同样类型我用的是 Redis……
    notcome
        4
    notcome  
       2014-03-19 06:57:10 +08:00 via iPhone
    已经进入生产了哦我动作太慢……
    EPr2hh6LADQWqRVH
        5
    EPr2hh6LADQWqRVH  
       2014-03-19 08:49:17 +08:00   1
    反正你也是一次性都拿出来,要不就按人头每人的记录都融成一条或者几条,人多了之后做sharding
    frank451
        6
    frank451  
       2014-03-19 09:18:08 +08:00
    IOS下是obj-c开发的?
    gkiwi
        7
    gkiwi  
       2014-03-19 09:47:59 +08:00
    @vilic 我觉得可以适当做个分级沉淀,比如说这6000个词的用户,在计算一次后,根据是否需要再次取出分成4000,1000,500,300,200这样子的级别,第一次用户优先计算300,200的,然后再后台慢慢计算500和1000级别的,没晚上再统一更新下4000那组的数据,这样子可能会好些。
    cdffh
        8
    cdffh  
       2014-03-19 10:15:17 +08:00   1
    早就叫你上Redis了 然后你那个winserver 的服务器是在卖萌吗..
    vilicvane
        9
    vilicvane  
    OP
       2014-03-19 11:42:43 +08:00
    @notcome 其实之前拖了很久了…
    @avastms 之前有试过每个用户数据存在一条里,读取是快不少,但每次更新都有重写整个大数组开销有点大。不过可能我的做法不对,一会儿搜搜去。
    @chenlong451 其实是web app,套了层壳子。
    @gkiwi 嗯,确实有想过这个,不过逻辑上估计稍稍困难,但未来估计必须得弄的感觉。
    谢过大家的回复!
    frank451
        10
    frank451  
       2014-03-19 22:54:48 +08:00
    颇想结识楼主。
    vilicvane
        11
    vilicvane  
    OP
       2014-03-20 04:01:07 +08:00
    @chenlong451 哈哈, 话说我都没提你怎知道...
    towser
        12
    towser  
       2014-03-22 19:23:43 +08:00
    @vilic 提什么?
    vilicvane
        13
    vilicvane  
    OP
       2014-03-23 15:14:24 +08:00
    @towser 没提这个东西有 iOS 版.
    tower
        14
    towser  
       2014-03-24 00:13:46 +08:00
    @vilic 我打开看了的,还顺带看了你的博客。
    哦,这是我小号。方便加个QQ认识认识么?
    vilicvane
        15
    vilicvane  
    OP
       2014-03-24 01:51:12 +08:00
    @towser , 要是不怎么说话的话加 QQ 还是没问题的... 闲聊就... email 给我下 qq 吧.
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5287 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 06:49 PVG 14:49 LAX 22:49 JFK 01:49
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86