Настроить размер сетки 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.