使用 Berkeley DB、C++ STL 接口进行批量读取
Posted
技术标签:
【中文标题】使用 Berkeley DB、C++ STL 接口进行批量读取【英文标题】:Bulk reads using Berkeley DB, C++ STL interface 【发布时间】:2010-07-16 15:56:49 【问题描述】:我正在使用 Berkeley DB 4.8 的 C++ STL API,并且我能够对使用 begin() 创建的 db_map 或 db_multimap 常量迭代器使用批量检索,但不是从 find()(或 lower_bound( ) 用于多地图)。
我很欣赏 find() 的单个项目随机访问使用会浪费使用批量检索,但我想从我的 find() 点向前以 btree 顺序访问许多记录,因此批量检索会对我有所帮助。底层 C++ api 似乎允许它,是否可以从 STl API 中获得?
【问题讨论】:
【参考方案1】:我自己找到了解决方案:
您需要重载 const_iterator lower_bound() 方法以包含 BulkRetrievalOption 参数,就像 begin() 一样。这将像 begin() 一样使用该参数在内部创建交互器实例,然后将迭代器移动到提供的键值的下限。
同样适用于 db_map::find
【讨论】:
以上是关于使用 Berkeley DB、C++ STL 接口进行批量读取的主要内容,如果未能解决你的问题,请参考以下文章