在BerkeleyDB中多次打开一个数据库会导致性能损失

2024-05-15 08:17:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用伯克利开发一个小应用程序。我有一个关于在BDB中多次打开数据库的问题。在

我有一个很大的文本集(语料库),我想加载其中的一部分来进行计算。这里有两个伪代码(与python混合)

@1个

def getCorpus(token):
    DB.open()
    DB.get(token)
    DB.close()

@2个

^{pr2}$

在第二个例子中,我将在计算之前打开数据库,为每个循环加载令牌,然后关闭数据库。在

在第一个示例中,每次循环请求令牌时,我将打开、获取然后关闭数据库。在

有没有损失表演?在

我还注意到我正在使用DBEnv来管理数据库


Tags: 代码文本token数据库应用程序closedbget
1条回答
网友
1楼 · 发布于 2024-05-15 08:17:05

如果不缓存打开的文件,性能将始终丢失,因为:

  • 多次调用()非常昂贵
  • 您将丢失所有可能的缓冲区(系统缓冲区和bdb内部缓冲区)。在

但在编写代码之前,我不会太在意性能。在

相关问题 更多 >