2010-12-31 11 views
9

Zastanawiam się, czy przechowywanie wszystkich przesłanych plików w GridFS jest szybsze niż przechowywanie ich w zwykłym systemie plików, np. Ext4 (pod względem szybkości odczytu/zapisu i średniego obciążenia serwera).Czy GridFS jest szybszy niż zwykle FS?

Odpowiedz

11

Ogólnie rzecz biorąc jest to slower dla zwykłego stylu systemu plików. Ale może korzystać z przyjemnych funkcji MongoDB:

  • Możesz powiązać dowolne metadane z plikami i wykonać zapytanie w zwykły sposób. W rzeczywistości pliki są przechowywane jako zwykłe dokumenty Mongo w kolekcjach fs.files i fs.chunks.
  • Replikacja. Za pomocą zestawu replik uzyskasz (prawie) natychmiastową kopię zapasową, przełączanie awaryjne i odczyt skalowalności (żądanie odczytu może przejść do węzłów podrzędnych).
  • Sharding. Podobnie jak w przypadku każdej innej kolekcji możliwe jest rozpowszechnianie plików w wielu instancjach Mongo z funkcją automatycznego dzielenia. Poprawi to skalowalność zapisu.
2

When to use GridFS

  • Jeśli system plików ogranicza liczbę plików w katalogu, można użyć GridFS przechowywać tyle plików, ile potrzeba.
  • Gdy chcesz, aby pliki i metadane były automatycznie synchronizowane i wdrażane w wielu systemach i obiektach. Podczas korzystania z rozproszonych geograficznie zestawów replik MongoDB może automatycznie dystrybuować pliki i ich metadane do wielu instancji mongo i ułatwia.
  • Jeśli chcesz uzyskać dostęp do informacji z części dużych plików bez konieczności wczytywania całych plików do pamięci, możesz użyć GridFS do przywołania sekcji plików bez odczytu całego pliku do pamięci.
Powiązane problemy