2013-04-10 16 views
13

Zastanawiam się, który sposób jest lepszy do przechowywania obrazów w pamięci:SQLite i przechowywania obrazów

  • Przechowywanie obrazów jak BLOB w DB

lub

  • Zapisywanie obrazów do pliku i przechowaj tylko ścieżkę do niego w bazie danych

Jaki sposób jest bardziej wydajny? Przypuszczam, że przechowywanie ścieżek plików wymaga więcej operacji, ponieważ musimy odwołać się do DB, a następnie do pliku, ale nie jestem pewien, czy jest to mniej wydajne niż przechowywanie całych obrazów w DB.

Odpowiedz

7

W skrócie:

  • Jeśli wielkość obrazów są dość małe i liczba obrazów są również mniej, przejdź bezpośrednio do przechowywania w bazie, ponieważ łatwiej jest zarządzać.
  • Jeśli jednak rozmiar zdjęć w dużych, a także liczba obrazów jest wysoki, przejdź do zapisywania w systemie plików. Zazwyczaj baza danych nie wykazuje problemów z wydajnością do 10 MB dla przeciętnego telefonu komórkowego.

Daj mi znać, jeśli znajdziesz inne kryteria oceny.

+0

Robię coś takiego jak aktualności, więc każdy z nich zawiera prosty obraz. Prawdopodobnie zdecyduję się na rozwiązanie, w którym przechowuję obrazy w DB jako reprezentację BLOB. – squixy

+6

Patrz [własna analiza wydajności SQLite] (http://www.sqlite.org/intern-v-extern-blob.html). Pamiętaj, że nie jest to zależne od systemu Android. Nie poszedłby na BLOBy o dużych rozmiarach (10 MB). Tak więc zalecana zamiana z obiektu BLOB na plik z przypisaniem do własnej witryny ma rozmiar około 100 000! –

Powiązane problemy