![]() |
![]() |
![]()
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) |
|
|
![]() |
![]()
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 15:00 |