Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 可以替代编写许多文件。MongoDB?_Linux_Mongodb_Perl_File_Database - Fatal编程技术网

Linux 可以替代编写许多文件。MongoDB?

Linux 可以替代编写许多文件。MongoDB?,linux,mongodb,perl,file,database,Linux,Mongodb,Perl,File,Database,我有一个Perl脚本,它在1kB-10kB大小的区域中生成约10000个文件,这对性能来说不是最佳的,因此我考虑使用MongoDB而不是编写大量的文件。我需要在我的笔记本电脑Linux和OSX上运行脚本 问题: MongoDB会不会被过度杀戮?还是有更适合这种本地文件存储的方法?有些文件系统比其他文件系统更适合处理成千上万的小文件。据传闻,BTRFS或ReiserFS过去优于Ext3或Ext4。在创建文件系统时,可以将块大小设置为1KB 您可以保留10K文件,但将它们放在100个目录中可能会更容

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

问题:


MongoDB会不会被过度杀戮?还是有更适合这种本地文件存储的方法?

有些文件系统比其他文件系统更适合处理成千上万的小文件。据传闻,BTRFS或ReiserFS过去优于Ext3或Ext4。在创建文件系统时,可以将块大小设置为1KB

您可以保留10K文件,但将它们放在100个目录中可能会更容易,例如,有dir01/file000.txt dir01/file999.txt dir02/file000.txt。。。dir02/file999.txt。。。。dir99/

它至少更人性化—因此ls提供了合理的输出—并且在一些旧的文件系统上可能更高效

,类似于或MySQL或是数据库服务器,因此您需要让服务器运行在localhost上,并且唯一的客户机-服务器连接需要一些成本

你也可以考虑,这是一个提供索引文件的库。

,你也可以考虑,这也是一个提供SQL数据库的库。 最后,每个10K字节的10K文件只有100M字节。这很容易放入内存或单个文件中

并且每个文件保留1到10K字节的10K文件可能有好处,例如,如果内容是文本的:标准工具(如grep或awk)可以很好地处理它们


这实际上取决于您的应用程序。

处理10000个文件时,您会遇到什么问题?您打算如何使用文件中的数据?您的Perl脚本在做什么?展示它,或者至少详细解释你想要它做什么,为什么有这么多文件!