我目前正在研究使用 MongoDB 存储电子邮件数据。因为电子邮件的大小可能会变得相当大(比如 10 兆)。
我相信 GridFS 非常适合这个。让我有点害怕的是,文档对 gridFS 中的分片大小不是很清楚。据我了解,gridFS 中的分片大小不等于正常的分片大小,但默认为 256kb。这在我看来是一种很大的空间浪费,因为许多电子邮件的大小不会超过 50kb。
有没有办法在 GridFS 中配置文件的分片大小以使其更适合存储邮件?
干杯,马蒂亚斯
您不必担心尺寸。即使块大小为 256kb,50kb 的文档(包含您的电子邮件)仍将仅使用 50kb(+ 少量开销)。
块大小在驱动程序中配置。例如,您可以使用 PHP 驱动程序:
$gridFs->storeFile( 'filename.txt', array( 'chunkSize' => 50 * 1024 ) );
在 Java 驱动程序中,您可以在GridFSInputFile上调用setChunkSize。
但总的来说,您不必担心 chunkSize。