我正在使用 BerkeleyDB 开发一个小应用程序。我有一个关于在 BDB 中多次打开数据库的问题。
我有大量文本(语料库),我想加载其中的一部分来进行计算。我这里有两个伪代码(与 python 混合)
@1
def getCorpus(token):
DB.open()
DB.get(token)
DB.close()
@2
#open and wait
def openCorpus():
DB.open()
#close database
def closeCorpus():
DB.close()
def getCorpus(token):
DB.get(token)
在第二个示例中,我将在计算之前打开数据库,为每个循环加载令牌,然后关闭数据库。
在第一个示例中,每次循环请求令牌时,我都会打开、获取然后关闭数据库。
有没有性能损失?
我还注意到我正在使用 DBEnv 来管理数据库