[原创][严禁转载]使用BerkeleyDB实现多列数据表

在阅读本文之前你应当了解什么是BerkeleyDB。

应用描述:从海量的搜索日志(log)中提取相似语义单元,为相似关键词提供支持,想做大规模分析(比如金融),也可以考虑这样的方案。

大家都知道BDB是实现了一个高效的键值对结构。同时BDB也提供了Secondary Database,但不是本文的重点。本文实现的方法的应用场景为海量,高效,但不限制存储空间的使用。数据库中表的结构是这样的 KEY|value1|value2|value3| ,BDB的结构是 KEY|value 。可能大家已经想到了,是的我们可以存储成 KEY|value1; KEY|value2;KEY|value3。但这只解决了问题的一部分。

第二部分:如何检索?

是的,我承认表面上看我们已经完成了工作,而且他很完美。比如我想查找key为1的值,直接在每个文件中找就可以了,然后一起返回结果,恩,OK。但是如果我想通过value来查找key了?喔,等等我遍历这个文件就会知道了。”遍历?”哥们你开玩笑吧?当然不行,上G的文件,遍历?想都别想。虽然我很不情愿,但你不得不接受这样的结果(如果有更好的方法,欢迎探讨)。我的为这样的查询另外再建一个 value | KEY 的文件。问题解决了。速度,那是嘎嘎的!

OK,世界完美了,只是稍稍有点大。但是世界总是那么大,那么喧嚣,谁又能不让世界喧嚣了,记住,喧嚣是世界的特点。

如有不对的地方,欢迎讨论。

admin | 14:29 | 未分类 |Comments Off
Tags:
Page 2 of 2«12