3

对于我当前的项目,我需要在磁盘上存储一个小数据库,我在程序运行后读取并写入一次。

我研究了 perls DBM 功能,据我了解,它仅提供存储在磁盘上的散列,每次读写都直接进入磁盘。

我的问题是:我不能简单地使用Storable或任何相关模块来实现相同的(持久散列)并且文件 I/O 开销要少得多吗?(散列永远不会太大而无法轻松放入内存)

问候尼克

4

2 回答 2

2

SQLite正迅速成为简单磁盘数据库的标准。在 Perl 中,您只需使用DBD::SQLite就可以了。

于 2011-12-30T16:24:30.353 回答
1

由于先前的答案并没有真正回答您的实际问题,因此“是的,您可以”...带有以下警告:

  • Storable 并不真正适合并发访问。
  • 您将需要推出自己的“原子”更新(即:您需要写入 tmp 文件,然后重命名)。
  • 如果性能不是真正的问题,您还可以使用 Data::Dumper (生成的文件在某种程度上是人类可读的)。
  • 您可以将内容转换为 CSV。

当只有一个任务访问文件时,我经常使用 Dumper - 如果我认为合适,它为我提供了一种读取/修改内容的方法。

于 2013-03-06T05:14:05.720 回答