Problem nie polega na tym, że baza danych staje się duża, bazy danych sobie z tym poradzą (chociaż MongoDB nie jest tak dobry jak wiele innych pod tym względem). Problem polega na tym, że aby wysłać dane do klienta, najpierw muszą one zostać przeniesione przez bazę danych do pamięci RAM, następnie skopiowane do pamięci aplikacji, a następnie przekazane do jądra w celu wysłania przez gniazdo. Marnuje mnóstwo cykli pamięci RAM i procesora. Powodem, dla którego lepiej mieć duże pliki w systemie plików, jest to, że łatwiej jest obejść jego kopiowanie, możesz poprosić jądro, aby przesyłało plik bezpośrednio z dysku do gniazda.
Wadą przechowywania dużych plików w systemie plików jest to, że znacznie trudniej jest je dystrybuować. Korzystanie z bazy danych i czegoś takiego jak GridFS Mongo umożliwia skalowanie w poziomie. Musisz tylko upewnić się, że nie kopiujesz całego pliku do pamięci aplikacji od razu, ale fragment na raz. Większość frameworków aplikacji internetowych obsługuje obecnie wysyłanie fragmentarycznych odpowiedzi HTTP.