2012-06-28 20 views
5

Pracuję nad projektem, w którym musimy przechowywać dużą liczbę obrazów, powiedzmy około 10 milionów, co jest najlepszym sposobem przechowywania obrazów. Najlepszy sposób pod względem szybkości i wydajności. Jest to projekt sieciowy, więc pobieranie obrazów powinno być szybkie.Przechowywanie dużej bazy obrazów lub systemu plików

  1. Database

    Zapisywanie obrazów jako base64 w bazie danych.
    pracujemy nad bazą danych nosql.

  2. File System

    Aby unikalny identyfikator i przechowywać je na folderze.

+0

możliwy duplikat [Przechowywanie obrazów w sklepach NoSQL ] (http://stackoverflow.com/questions/2278186/storing-images-in-nosql-stores) –

Odpowiedz

1

Istnieje oferta handlowa - będzie zależała od Twojej konkretnej sytuacji i potrzeb. Korzyści z siebie zawierać

System plików

  • wydajność, zwłaszcza buforowanie i I/O

  • Zapisywanie ścieżki plików w bazie danych, aby być najlepszym.

Istnieje kilka kwestii:

  • przechowywanie bazy danych jest zazwyczaj droższe niż składowanie systemu plików
  • można super przyspieszenie dostępu do systemu plików ze standardem off produktów półkowych
    • na przykład wiele serwerów internetowych używa wywołania systemowego sendfile() systemu operacyjnego do asynchronicznego wysyłania pliku bezpośrednio z systemu plików do interfejsu sieciowego. Obrazy przechowywane w bazie danych nie korzystają z tej optymalizacji.
  • rzeczy jak serwery WWW, itp, nie wymagają specjalnego kodowania lub przetworzeniu dostęp do obrazów w systemie plików
  • baz wygrać, gdzie integralność transakcyjna pomiędzy obrazem i metadanych są ważne.
    • jest to bardziej skomplikowane zarządzanie integralność między danymi metadanych db i systemu plików
    • trudno jest (w kontekście aplikacji internetowych), aby zapewnić dane zostały opróżnione na dysku w systemie plików

Database

  • Łatwiejsze skalować się do wielu serwerów internetowych
  • Łatwiej zarządzać (backup, bezpieczeństwo itp)

Jeśli masz SQL 2008 DB, rzucić okiem na FileStream in this SO artykułu - to daje najlepsze z obu światów.

Zobacz Storing Images in DB - Yea or Nay?

Edit

Patrz NoSQL:

  1. Is it a good idea to store hundreds of millions small images to a key/value store or other nosql database?
  2. Storing images in NoSQL stores
+0

Brak powiązanych relacyjnych baz danych. Ramesh stwierdził: "* pracujemy nad bazą danych nosql *" –

3

1) Baza

  • będzie wymagać dużo kodu do przetwarzania obrazu, jak za pomocą strumieni
  • Cięższy obciążenie serwera bazy
  • przechowywanie bazy danych jest zazwyczaj droższe niż składowanie systemu plików
  • baz wygrać, gdzie transakcyjny integralność pomiędzy obrazem i metadane są ważne.
  • jest to bardziej skomplikowane zarządzanie integralność między metadanych db i danych systemu plików
  • trudno jest (w kontekście aplikacji internetowych) W celu zapewnienia danych został przepłukany na dysku w systemie plików

2) System plików

  • Do przechowywania obrazów o unikalnym id i przechowywanie ich na dysku twardym będzie lepszym rozwiązaniem.
  • rzeczy jak serwery WWW, itp, nie wymagają specjalnego kodowania lub przetwarzania obrazów dostępu w systemie plików

odnoszą http://perspectives.mvdirona.com/2008/06/30/FacebookNeedleInAHaystackEfficientStorageOfBillionsOfPhotos.aspx

również zobaczyć Storing Images in DB - Yea or Nay?

Powiązane problemy