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?
9
A
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
ifs.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
- 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
- 1. jest CLucene jest szybszy niż java Lucene?
- 2. Dlaczego Array.reverse_each jest szybszy niż Array.reverse.each
- 3. Dlaczego HashMap jest szybszy niż HashSet?
- 4. Czy widok MySQL jest szybszy niż normalne zapytanie?
- 5. Czy indeks partycjonowany globalnie jest lepszy (szybszy) niż indeks niepartycjonowany?
- 6. Czy `scipy.misc.comb` jest szybszy niż obliczanie dwumianowe ad-hoc?
- 7. Czy framework Mongodb Aggregation jest szybszy niż map/reduce?
- 8. Czy lodash _.size() jest szybszy niż własność JS length?
- 9. Czy int jest zawsze szybszy niż Numbers/Floats w AS3?
- 10. Dlaczego string.HasPrefix jest szybszy niż bytes.HasPrefix?
- 11. Dlaczego Object.keys jest szybszy niż hasOwnProperty?
- 12. Dlaczego .index jest szybszy niż .all?
- 13. Dlaczego emplace_back jest szybszy niż push_back?
- 14. Seq.map jest szybszy niż zwykła pętla?
- 15. Dlaczego java.lang.Object.getClass() (i odbicie) jest wolniejszy niż zwykle?
- 16. Jaka jest zwykle zasada nazewnictwa w clojure?
- 17. dlaczego MySQL JOIN jest znacznie szybszy niż WHERE IN (podzapytanie)?
- 18. Dlaczego std :: none_of jest szybszy niż pętla ręczna?
- 19. Dlaczego LINQ .Where (predicate) .First() jest szybszy niż .First (predykat)?
- 20. Dlaczego inline, jeśli/else jest szybszy niż .get() w Pythonie?
- 21. LEFT JOIN Znacząco szybszy niż INNER DOŁĄCZ
- 22. Czy SQLite jest naprawdę szybszy od MySQL?
- 23. Czy MATLAB jest szybszy od Pythona?
- 24. SURF vs SIFT, czy SURF jest naprawdę szybszy?
- 25. Czy odczyt "zera" z pamięci jest szybszy niż czytanie innych wartości?
- 26. Czy std :: deque jest szybszy niż std :: wektor do wstawienia na końcu?
- 27. Czy istnieje scenariusz, w którym array_search jest szybszy niż kolejne array_flip i bezpośredniego wyszukiwania?
- 28. Czy log (a * b) jest zawsze szybszy w programie Matlab niż log (a) + log (b)?
- 29. Szybszy algorytm matematyczny poświęcający dokładność
- 30. Zapytanie o GridFS MongoDB?