Настроить размер сетки GridFS в MongoDB

В настоящее время я изучаю использование MongoDB для хранения данных электронной почты. Так как электронные письма могут стать довольно большими по размеру (скажем, 10 мегабайт).

Я считаю, что GridFS хорошо подойдет для этого. Что меня пугает, так это то, что в документах не очень ясно о размере шарда в gridFS. Насколько я понимаю, размер сегмента в gridFS не равен нормальному размеру фрагмента, а по умолчанию равен 256 КБ. Это звучит как большая трата пространства, так как размер электронной почты не превышает 50 КБ.

Есть ли способ настроить размер сегмента файлов в GridFS, чтобы сделать его более подходящим для хранения почты?

Ура, Матиас

1 ответ

Вам не нужно беспокоиться о размере. Даже если размер фрагмента равен 256 КБ, документ (содержащий вашу электронную почту) размером 50 КБ все равно будет использовать только 50 КБ (+ незначительные накладные расходы).

Размер куска настраивается в драйвере. Например, с драйвером PHP вы должны сделать:

$gridFs->storeFile( 'filename.txt', array( 'chunkSize' => 50 * 1024 ) );

А в драйвере Java вы вызываете setChunkSize для GridFSInputFile.

Но в целом вам не нужно беспокоиться о chunkSize.

Другие вопросы по тегам