Легкие веб-серверы (lighttpd, nginx) неплохо справляются с обслуживанием контента из файловой системы. Поскольку ОС действует как уровень кэширования, они обычно подают содержимое из памяти, которая очень быстрая.
Если вы хотите обслуживать изображения с mongodb, веб-сервер должен запустить какой-то скрипт (python, php, ruby ... конечно, FCGI, вы не можете запустить новый процесс для каждого изображения), который должен извлекать данные из mongodb каждый раз, когда запрашивается изображение. Так будет медленно? Преимущества - автоматическая репликация и отработка отказа, если вы используете наборы реплик. Если вам нужно это и достаточно умно, чтобы знать, как добиться этого с помощью FS, тогда используйте эту опцию ... Если вам нужна очень быстрая и надежная реализация, тогда mongodb может быть более быстрым способом сделать это. Но если ваш сайт рано или поздно станет популярным, вам придется переключиться на реализацию FS.
Кстати: вы можете смешать эти два подхода, сохранить изображение в mongodb, чтобы получить мгновенную надежность, а затем скопировать его на ФС нескольких серверов для увеличения скорости.
Некоторые результаты испытаний .
О, еще одна вещь ... связь метаданных с изображением, кажется, будет хорошей, пока вы не поймете, что сгенерированный HTML и загрузка изображения будут представлять собой два отдельных HTTP-запроса, поэтому вам придется запрашивать монго дважды, один раз для метаданных и один раз за изображение.