在磁盘上随着CSV文件我mongoimport的多个数据库的大小?(Database size on

2019-10-18 10:10发布

我导入的CSV文件,该文件是在230M总大小,文件的尺寸是3069055行和13列。

我用导入的命令是:

mongoimport -d的Taq -c MyCollection的--type CSV --file myfile.csv --headerline

之前,我这样做是进口的Taq数据库是空的。 进口完成(这花了4分钟)后,我检查了数据库文件的大小,MongoDB的用户目录。 这是我所看到的:

-rw------- 1 mongod mongod  64M Jul 23 14:13 taq.0  
-rw------- 1 mongod mongod 128M Jul 23 14:10 taq.1 
-rw------- 1 mongod mongod 256M Jul 23 14:11 taq.2
-rw------- 1 mongod mongod 512M Jul 23 14:13 taq.3 
-rw------- 1 mongod mongod 1.0G Jul 23 14:13 taq.4 
-rw------- 1 mongod mongod 2.0G Jul 23 14:13 taq.5
-rw------- 1 mongod mongod  16M Jul 23 14:13 taq.ns

六个的Taq文件被​​创建,编号从0到5这些文件的总大小为多个绿带。 这是为什么,当我导入CSV文件只有230M? 这是一个错误? 还是我失去了一些东西?

干杯。

Answer 1:

在一个完全不同的格式MongoDB中存储数据,称为BSON,这是会占用更多的磁盘空间。 不仅做到了值需要存储的每个字段,它也将拥有的对每个文档(行)再次存储的列名。 如果您有大量的列名,这绝对可以增加MongoDB中的大小为CSV文件的8〜10倍。 如果可能的话,你可以看看缩短您的字段名称,如果这是你太多。

MongoDB也预先分配的数据文件为您服务。 例如,它开始将数据添加到瞬间taq.2 ,它会创建taq.3 ,并开始同样,当写入taq.4它创建tag.5 。 所以你的情况,说你的230MB的文件将创建数据的1.9GB,MongoDB的已分配大小的2.0G taq.5 。 这种行为可以通过指定被关闭--noprealloc开始时在命令行上mongod



文章来源: Database size on disk increases as a multiple of the CSV file I mongoimport?