2013-05-09 14 views
15

Potrzebuję przechowywać dużą liczbę obrazów (od około 10 000 obrazów dziennie). Średni rozmiar od 1 do 10 MB dla każdego obrazu.Przechowywanie obrazów: system MongoDb kontra system plików

Mogę przechowywać te obrazy w MongoDB przy użyciu Biblioteki GridFS lub po prostu przechowując konwersję Base64 jako ciąg znaków.

Moje pytanie brzmi, czy MongoDB nadaje się do takiego ładunku lub czy lepiej jest użyć systemu plików?

Wielkie dzięki,

+0

Wydaje się być duplikatem [tego pytania] (http://stackoverflow.com/questions/6212990/mongodb-gridfs-vs-directly-disk- io). –

+0

Alternatywą byłoby posiadanie metadanych obrazów w mongoDB i posiadanie samych obrazów na czymś podobnym do S3 (opcjonalnie w chmurze) –

Odpowiedz

6

MongoDB GridFS ma wiele zalet w stosunku do zwykłego systemu plików, a to z pewnością w stanie poradzić sobie z ilością danych, które opisują, jak można skalować z sharded klastra Mongo. Nie zapisałem w nim tak dużo danych binarnych na własną rękę, ale nie sądzę, że istnieje prawdziwa różnica między danymi binarnymi a tekstem. A więc: tak, nadaje się do ładowności.

2

Implementowanie zapytań i operacji na zapisywanych obiektach plików jest łatwiejsze dzięki GridFS. Ponadto GridFS obsługuje tworzenie kopii zapasowych/replikacji/skalowania. Jednak serwowanie plików odbywa się szybciej za pomocą Filesystem + Nginx niż GridFS + Nginx (patrz tutaj: https://www.coffeepowered.net/2010/02/17/serving-files-out-of-gridfs/). GridFS "wolniejsza" szybkość serwowania może być jednak wykorzystana, gdy użyto shardowania

Powiązane problemy