替代编写许多文件。 MongoDB的?

时间:2014-03-18 18:18:10

标签: linux mongodb perl file database

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

问题

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

1 个答案:

答案 0 :(得分:3)

某些文件系统比其他文件系统更好地处理数十万个小文件。据传闻,BTRFS或ReiserFS曾经比Ext3或Ext4更好。您可以在制作文件系统时设置块大小(可能为1Kbyte)。

你可以使用10K文件,但将它们放在100个目录中可能会更容易,即有dir01/file000.txt dir01/file999.txt dir02/file000.txt ... dir02/file999.txt .... dir99/ ....

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

MongoDB,如MariaDb(或 MySQL )或PostgreSQL是数据库服务器,因此您需要拥有服务器运行(可能只在localhost上)并且唯一的客户端服务器连接有一些成本。

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

您还可以考虑Sqlite,它也是提供Sql数据库的

最后,每个10K字节的10K文件只有100M字节。这很容易适合内存或单个文件......

并且保持每个1到10K字节的10K文件可以具有优势,例如如果内容是文本的:grepawk等标准工具可以很好地运用它们。

这实际上取决于你的申请。