首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >byBatch(尺寸)在SnappyDB中意味着什么?

byBatch(尺寸)在SnappyDB中意味着什么?
EN

Stack Overflow用户
提问于 2020-04-14 12:11:18
回答 2查看 33关注 0票数 0
代码语言:javascript
复制
for (String[] batch : snappyDB.allKeysIterator().byBatch(0))

在byBatch()方法中,'size‘param是什么意思?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-14 12:18:39

如果不使用byBatch,您将只有一个不实现IteratorIterableKeyIterator,因此不能在循环中使用它。

byBatch(n)创建一个BatchIterable,它是IterableIterator。当你在KeyIterator上调用next()时,它基本上就是在它上调用next()。(来源)

KeyIterator#next(int max)似乎总是试图从数据库中获取max元素。因此,我假设您很可能在每次迭代的示例中都会在batch数组中包含batch元素。因此,在您所做的工作中传递0没有多大意义(甚至不确定它是否有效)。

同时,只要从GitHub回购中阅读自述文件,就会发现一些文件

代码语言:javascript
复制
Iterable<String[]> byBatch(int size); // Get an iterable of key batch, each batch of maximum [size] keys.
票数 0
EN

Stack Overflow用户

发布于 2020-04-14 12:22:03

根据SnappyDB文档,找到了这里

Iterable<String[]> byBatch(int size);// Get an iterable of key batch, each batch of maximum [size] keys.

因此,size指定了每个批处理的最大键数。然而,根据这些文件:

请注意,您应该使用byBatch迭代只处理大型集合上的所有键。在相当小的集合上,使用基于数组的API (findKeys和findKeysBetween)和form (字符串键: db.findKeys("android"))的效率要高得多。迭代器只应用于处理大型集合或用于集合分页视图/访问。

因此,确保在用例中确实需要byBatch。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61207370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档