替代编写许多文件.MongoDB



我有一个Perl脚本,在1kB - 10kB大小的区域产生~10000个文件,这对性能来说不是最佳的,所以我考虑使用MongoDB而不是编写许多文件。我需要在我的笔记本电脑Linux和OSX上运行这个脚本。

MongoDB会被过度杀伤吗?或者有更适合这种本地文件存储的东西吗?

一些文件系统比其他文件系统更适合处理成千上万的小文件。根据传言,BTRFS或ReiserFS曾经比Ext3或Ext4更好。您可以在创建文件系统时设置块大小(也许是1Kbyte)。

你可以保留10K的文件,但是把它们放在100个目录中可能更容易,例如,有dir01/file000.txt dir01/file999.txt dir02/file000.txtdir02/file999.txt……dir99/

它至少更人性化-所以ls给出了一个合理的输出-并且可能在一些旧的文件系统上更有效。

MongoDB,像MariaDb(或MySQL)或PostgreSQL是数据库服务器,所以你需要有服务器运行(也许只是在localhost)和唯一的客户端服务器连接有一些成本。

您还可以考虑GDBM,它是一个,提供索引文件。

你也可以考虑Sqlite,它也是一个提供Sql数据库。

最后,10K个文件,每个10Kbytes只有100Mbytes。这很容易放在内存中,或者在单个文件中…

保存10K的文件,每个文件1到10kb可以有好处,例如,如果内容是文本:grepawk等标准工具可以很好地处理它们。

最新更新