bsddb.open 额外参数
bsddb
模块有三种打开数据库文件的方法:
bsddb.hashopen(filename[, flag[, mode[, pgsize[, ffactor[, nelem[, cachesize[, lorder[, hflags]]]]]]]])
bsddb.btopen(filename[, flag[, mode[, btflags[, cachesize[, maxkeypage[, minkeypage[, pgsize[, lorder]]]]]]]])
bsddb.rnopen(filename[, flag[, mode[, rnflags[, cachesize[, pgsize[, lorder[, rlen[, delim[, source[, pad]]]]]]]]]])
文档中提到:
除了
filename
和flag
之外,其他参数很少使用,通常会传递给底层的dbopen函数。有关这些参数的使用和解释,请参考Berkeley DB的文档。
但是我在任何地方都没找到这些参数的具体含义。有没有人知道这些参数的用法?我觉得它们可能对提高我的数据库文件的性能有帮助,也就是说,可以让get
和set
数据的速度更快。
1 个回答
3
在查看C API 参考文档时,我发现了一些文档(不过确实不太好找)。比如,关于bsddb.hashopen
的内容:
- mode: DB->open(),这个是用来打开数据库的模式设置。
- pgsize: DB->set_pagesize()和DB->get_pagesize(),这两个是用来设置和获取页面大小的。
- ffactor: DB->set_h_ffactor()和DB->get_h_ffactor(),这两个是用来设置和获取哈希表的因子。
- nelem: DB->set_h_nelem()和DB->get_h_nelem(),这两个是用来设置和获取哈希表中元素的数量。
- cachesize: DB->set_cachesize()和DB->get_cachesize(),这两个是用来设置和获取缓存大小的。
- lorder: DB->set_lorder()和DB->get_lorder(),这两个是用来设置和获取字节顺序的。
- hflags(这个我不太确定,抱歉)