V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
samin
V2EX  ›  Amazon Web Services

使用过 AWS DynamoDB 的大神看过来,关于分页有问题

  •  
  •   samin · 2020-09-08 00:15:55 +08:00 · 3617 次点击
    这是一个创建于 1536 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我目前的认知,DynamoDB 无法获取总数量大小,查询有限制 DynamoDB 无法做到指定页面跳转 DynamoDB 只能通过 exclusiveStartKey 和 lastEvaluatedKey 进行前进后退的功能开发

    请问这正确吗 ? 搞了一天,这个 NoSQL 有点刷新我的认知

    3 条回复    2020-09-08 08:35:37 +08:00
    lihongming
        1
    lihongming  
       2020-09-08 01:12:37 +08:00
    没错,DynamoDB 放弃了一切可以放弃的东西,就是为了更加高效。

    从设计上来看,DynamoDB 更适合移动应用。所以,如果你想要传统桌面的翻页方式,就得自己在程序里处理了。Amazon 自己用的也是 DynamoDB,据说 Airbnb 也是,你可以看到他们都是能直接选页的。

    不过我不觉得获取总数量是个必要的需求,因为特别靠后的页面除了爬虫根本没人看。我之前工作过的一个公司,数据量有几亿条,但对每个 query 只处理前 100 页,后面的就放弃了。按每页 20 条算,100 页才 2000 条,DynamoDB 每次 Query 可以取回 1MB 的数据,你只取 key 的话肯定够用了。
    wwwjfy
        2
    wwwjfy  
       2020-09-08 02:05:08 +08:00
    感觉你没把它当成 NoSQL,虽然你自己这么说了。
    所谓分页的概念本来也是 RDBS 里才有吧,对 key-value 来说不存在啊,要获取所有信息只能做全 namespace 扫描。
    coyove
        3
    coyove  
       2020-09-08 08:35:37 +08:00
    mysql 里不也经常这么做:where index > last_cursor limit 20,很多业务场景端上只需要可以上下 scroll 的流式数据,这样设计再适合不过了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1101 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:47 · PVG 02:47 · LAX 10:47 · JFK 13:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.