我目前的认知,DynamoDB 无法获取总数量大小,查询有限制 DynamoDB 无法做到指定页面跳转 DynamoDB 只能通过 exclusiveStartKey 和 lastEvaluatedKey 进行前进后退的功能开发
请问这正确吗 ? 搞了一天,这个 NoSQL 有点刷新我的认知
1
lihongming 2020-09-08 01:12:37 +08:00
没错,DynamoDB 放弃了一切可以放弃的东西,就是为了更加高效。
从设计上来看,DynamoDB 更适合移动应用。所以,如果你想要传统桌面的翻页方式,就得自己在程序里处理了。Amazon 自己用的也是 DynamoDB,据说 Airbnb 也是,你可以看到他们都是能直接选页的。 不过我不觉得获取总数量是个必要的需求,因为特别靠后的页面除了爬虫根本没人看。我之前工作过的一个公司,数据量有几亿条,但对每个 query 只处理前 100 页,后面的就放弃了。按每页 20 条算,100 页才 2000 条,DynamoDB 每次 Query 可以取回 1MB 的数据,你只取 key 的话肯定够用了。 |
2
wwwjfy 2020-09-08 02:05:08 +08:00
感觉你没把它当成 NoSQL,虽然你自己这么说了。
所谓分页的概念本来也是 RDBS 里才有吧,对 key-value 来说不存在啊,要获取所有信息只能做全 namespace 扫描。 |
3
coyove 2020-09-08 08:35:37 +08:00
mysql 里不也经常这么做:where index > last_cursor limit 20,很多业务场景端上只需要可以上下 scroll 的流式数据,这样设计再适合不过了
|