0

有没有办法只获取存储在 BDB 中的值的长度(以字节为单位)?我不需要整个数据数组,只需要它的大小。

4

4 回答 4

2

如果您不想检索整个条目并且不使用 DPL,我会说您应该在存储的字节数组的大小上添加一个二级索引,并确保您的 DAO 在任何保存或更新。您可以添加一个根据记录在辅助数据库KeyCreator中创建辅助键的方法。size

您要执行什么类型的查询?您想搜索给定大小的所有记录吗?或者您想在检索某个记录之前知道它的大小?我认为后一个问题更难回答。

于 2010-05-31T00:13:50.010 回答
0

我假设您使用的是 JE 版本(或 BDB 的 Java 绑定),在这种情况下,一旦您获得所需密钥的DatabaseEntry,getSize() 应该会为您提供所需的内容。

如果您使用 C 绑定,请检查 DBT 句柄的大小字段。

于 2010-04-13T12:21:40.263 回答
0

如果您将文档 id 存储为重复数据项,而不是一个 blob 数据项值,则可以使用 DBC->count() 来检测匹配文档的数量,而无需实际检索一长串 id。否则,Berkeley DB API 似乎不支持您要求的内容(即使您认为他们添加它可能是有效的)。我也对此感到困惑,这就是我为自己的项目提出的解决方案。

于 2013-02-10T18:52:22.500 回答
0

对于您的问题,使用 DB_DBT_PARTIAL 标志来询问记录的开头将为您提供您的第一个 ID,并且 DBT.size 可用于计算 ID 的总数。

于 2013-02-17T22:11:34.483 回答