QDBM http://qdbm.sourceforge.net/spex.html
是日本人Mikio Hirabayashi写的一个key-value数据库.在张宴的blog上面看到采用了该数据库,比如berkeley
db 快N倍,打算使用这个数据库。(PS:swish-e的索引文件采用了berkely DB数据库,词条作为key,而词条信息作为
value)。
1.综述
QDBM如果采用hashtable方式,其中的key不能够重复,如果采用B+树方式,可以允许key重复。
2.对于数据库的hashtable实现
QDBM通过hash算法取出记录。如果hashtable中的bucket数组足够大,则时间复杂度为O(1)。如果遇到hash冲突情况
时,通过chain(二叉搜索树结构)进行处理,时间复杂度为O(logN)。
3.数据库容量
由于一些文件系统中文件不能超过2GB,QDBM采用了数据库目录方式,可以包含多个数据库文件,理论上为1TB。
4.接口设计
QDBM的接口设计很简单,并且提供了多种接口。C、JAVA、PERL、LUA等。
DEPOT,是QDBM提供的速度最快的接口。包含了机会所有的操作方法。