Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySql+PHP] Blob, Blob - przechowywanie obrazków w bazie danych
mariopce
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 18.07.2005

Ostrzeżenie: (0%)
-----


Witam

Mam pytanie, ostatnio wdałem się w interesującą konwersacje z Dr. (nie ważne którym ), który powiedział że lepiej przechowywać obrazki (jpg i inne ) w bazie danych niż w systemie plików. Oczywiście że są zalety i wady tego rozwiązania, lecz mnie interesuje prędkość tych rozwiązań. Ogólnie wiadomo że szybciej powinien działać sposób taki:

Zapisujemy obrazek do systemu plików (czyli na dysk twardy) i ścieżkę do bazy danych.
I jak chcemy wyświetlić obrazek na stronie to pobieramy z bazy danych ścieżkę do obrazka, i ładujemy obrazek. Ogólnie to zawsze tak robiłem (mysql + php).

Szukałem co jest lepsze (szybsze), w necie przechowywanie obrazków w BLOBie czy w Systemie plików.
I tutaj jest problem, ogólnie większość programistów piszę że blob jest wolniejszy.
Ale UWAGA (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) ! nigdzie nie podaję linków do jakiś statystyk, porównań czasu.
Przeszukałem setki stron internetowych i nadal nie wiem, co jest szybsze a co wolniejsze i o ile, bo jeśli tylko o 0.00001 s to nie ma co sobie głowę zawracać, ale jeśli o 1 rząd czy o 2 rzędy to już jest problem.
Myślałem że mojego Dr. od razu uciszę argumentem wydajności, i szybkości, jednak nigdzie nie jest czarno na białym napisane, co jest szybsze (wydajniejsze).

2) pytanie, który obrazek zajmie mniej miejsca. Ten w bazie danych, czy w systemie plików.
3) czy obrazek z bazy danych, może być chashowany w przeglądarce. (tzn. z moich eksperymentów, prób - nie ponieważ za każdym odświeżeniem strony jest wczytywany na nowo. Ale może ktoś ma konkretne dane. Porównania czasów)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nevt
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

Ostrzeżenie: (0%)
-----


1. Co do cache przeglądarki - bywa, że jest to cel sam w sobie - wyłączenie cache, żeby mieć 100% gwarancje, że użytkownik widzi aktualna wersję.
2. Blob ma przewagę, gdy musimy zaimplementować skomplikowane mechanizmy dostępu do danych - załóżmy że te obrazki to nie zwykłe graficzki ale skany dokumentów. W systemie plików wszystkie grafiki będą dostępne do odczytu przez przeglądarkę...
3. Kolejny plus dla bloba, jeżeli istnieje potrzeba udostępnienia użytkownikom możliwości aktualizacji / edycji tych plików - system plików jako taki nie ma mechanizmów wspierających rozwiązywanie konfliktów przy jednoczesnej edycji przez wielu użytkowników - a baza danych tak - chociażby poprzez tranzakcje.
4. W sytuacji, gdy potrzebujemy zaimplementować system wersjonowania tych grafik - znacznie prostsze będzie zrobienie tego bezpośrednio w bazie danych.

Podsumowując, uważam, że w typowych zastosowaniach internetowych (elementy layouty, proste ilustracje lub galerie do publikowanych treści) zdecydowanie prostsze jest korzystanie z plików przechowywanych bezpośrednio na dysku. Jednak w przypadku zaawansowanej aplikacji, stawiającej specyficzne wymagania, jak w przykładach powyżej, w NIEKTÓRYCH, sporadycznych przypadkach przewagę zyskuje przechowywanie grafik w bazie danych.

Czyli niewłaściwym pytaniem, jest ogólne: co jest lepsze / wydajniejsze ? pliki czy blob? Właściwym pytaniem jest co jest lepsze / wydajniejsze do implementacji konkretnego zadania ?

Pozdrawiam wszystkich.

Ten post edytował nevt 17.03.2008, 08:07:23
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 15:00