Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wydajność - Dużo folderów, dużo zdjęć., Wyświetlanie zdjęć z danego katalogu, a nie po adresach z DB.
adbacz
post
Post #1





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

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


Witam i z góry przepraszam za tytuł tematu, ale nie wiedziałem jak to opisać.

Piszę pewien katalog i akurat jestem na poziomie pisania systemu uploadu i downloadu plików. Wpadłem na pewien pomysł. Mianowicie, zamiast zmuszać użytkownika do wpisywania pełnych adresów do zdjęć danego produktu i zapisywać to w DB, zrobić w folderze głównym folder o nazwie takiej samej jak ID danego produktu, i podczas wyświetlania tego produktu, sprawdzać, czy istnieje taki katalog i w nim zdjęcia, i stamtąd pobierać nazwy i wyświetlać zdjęcia.

Np. mamy kategorię ProductOne i dla tej kategorii tworzymy główny katalog o tej samej nazwie w katalogu upload. Podczas gdy będzie dodawany nowy produkt do tego katalogu i zdjęcia do niego, zostanie utworzony nowy katalog o nazwe ID produktu, np. upload/productone/155, i w tym katalogu zamieszczać wszystkie zdjęcia. A gdy ktoś będzie odwiedzał naszą stronę, będziemy sprawdzać czy katalog o ID produktu istnieje i będziemy pobierać wszystkie obrazki jakie tam są, i wyświetlać je.

Wg mnie, dość dobry patent na to, aby w jakimś stopniu zapobiec zapełnianiu sie przestrzeni dyskowej niepotrzebnymi plikami, które nie będą wykorzystywane. Ale teraz pytanie, czy to nie będzie zbyt obciążające dla serwera? Żeby za każdym razem sprawdzać czy katalog istnieje, przebierać po wszystkich plikach w tym katalogu, pobierać ich nazwy i dopiero wyświetlać?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
cudny
post
Post #2





Grupa: Zarejestrowani
Postów: 387
Pomógł: 66
Dołączył: 31.03.2005
Skąd: Kielce

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


Cytat(by_ikar @ 6.12.2011, 11:26:10 ) *
BTW przetrzymywanie informacji o plikach w pliku xml IMO mija się z celem. Już lepiej to trzymać w bazie, niż parsować każdorazowo wiele plików xml (np dla kategorii gdzie jest wiele produktów), lub parsowanie ogromnego pliku xml w którym byłby wszystkie adresy do obrazków. Może się wydawać ciekawe, ale według mnie takie nie jest.


Niestety nie zgadzam się z tobą w żadnym wypadku !
Bazy nie relacyjne zmniejszają obciążenie serwera, a pliki XML można sobie otwierać strumieniowo więc wydajnościowo wypadają pięknie.
Nie masz tam widoków jak w mysql, że możesz sobie posortować po nazwie czy coś, ale za to kolejność dodanych danych do xml jest zachowywana, a w mysql już nie (IMG:style_emoticons/default/wink.gif)
Możesz sobie w bazie dać kolumnę kolejność ale przy zmianie jednego rekordu zmieniasz wszystkie pozostałe (IMG:style_emoticons/default/wink.gif)
Jeśli chodzi o XML, w którym przechowujesz dane dotyczące w tym wypadku obrazków to będzie to znacznie lepsze rozwiązanie niż każdorazowy request do bazy danych.
Korzystanie w każdym wypadku z mysql moim zdaniem jest ZŁEM !
Bez sensu wykorzystywać bazę do tak prostych czynności jak zapis zwykłych informacji nie powiązanych z niczym innym.
Myślisz, że aplikacje wymagające zawrotnych prędkości (powiedzmy aplikacje na androida) to z jakich baz korzystają ?
Nie jestem zwolennikiem trzymania wszystkiego w bazie danych !

Moim zdaniem to pójście na łatwiznę.
Go to the top of the page
+Quote Post
by_ikar
post
Post #3





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


Cytat(cudny @ 6.12.2011, 11:38:59 ) *
Niestety nie zgadzam się z tobą w żadnym wypadku !


Oczywiście masz do tego prawo.

Cytat(cudny @ 6.12.2011, 11:38:59 ) *
Nie masz tam widoków jak w mysql, że możesz sobie posortować po nazwie czy coś, ale za to kolejność dodanych danych do xml jest zachowywana, a w mysql już nie (IMG:style_emoticons/default/wink.gif)


Tym razem to ja się z tobą nie zgodzę. Wystarczy dodatkowa kolumna z auto inkrementacją. Chyba że chodziło ci zupełnie o coś innego.

Cytat(cudny @ 6.12.2011, 11:38:59 ) *
Bazy nie relacyjne zmniejszają obciążenie serwera, a pliki XML można sobie otwierać strumieniowo więc wydajnościowo wypadają pięknie.


Otworzenie pliku może i tak, w przypadku jego dodatkowego parsowania, a już w przypadku kategorii gdzie możesz mieć różne produkty, a już nie wspomnę o wyszukiwarce, gdzie produkty są już całkowicie różne. To wylistowanie 40 produktów i 40 razy parsować xml'em 40 różnych plików w poszukiwaniu istnienia miniatury produktu jest IMO przerostem treści nad formą. Już nie mówiąc o tym że wydajnościowo to jest bardzo kiepskie rozwiązanie.

Cytat(cudny @ 6.12.2011, 11:38:59 ) *
Jeśli chodzi o XML, w którym przechowujesz dane dotyczące w tym wypadku obrazków to będzie to znacznie lepsze rozwiązanie niż każdorazowy request do bazy danych.


Ten request i tak wykonać musisz, żeby pobrać opis produktu, jego nazwę, cenę. Dodatkowy join do tabeli z miniaturkami i pobierasz te dane w jednym requęście. Przy niewielkim, lub nawet nie zauważalnie zwiększonym obciążeniu. W przypadku xml musisz to robić 40 razy, dla 40 produktów. 40 razy sprawdzasz czy masz prawa odczytu, 40 razy tworzysz nową instancje obiektu prasującego xml. Niestety, liczby źle wróżą xml'owi.

Cytat(cudny @ 6.12.2011, 11:38:59 ) *
Bez sensu wykorzystywać bazę do tak prostych czynności jak zapis zwykłych informacji nie powiązanych z niczym innym.


Tak, może być bez sensu, zależy jak na to patrzeć, dlatego podałem drugą opcję, która zarówno nie sprawdza 40 razy czy plik istnieje i wykonuje odpowiednie czynności w przypadku jego nie istnienia.

Cytat(cudny @ 6.12.2011, 11:38:59 ) *
Myślisz, że aplikacje wymagające zawrotnych prędkości (powiedzmy aplikacje na androida) to z jakich baz korzystają ?
Nie jestem zwolennikiem trzymania wszystkiego w bazie danych !

Moim zdaniem to pójście na łatwiznę.


Porównanie akurat do androida tutaj ma się nijak. Zauważ że z androida w jednym momencie jedna osoba korzysta. Z takiego allegro, gdzie masz listowanych 40 aukcji na stronie, korzysta kilka milionów ludzi dziennie. A dodatkowo w androidzie to sobie trzymasz te dane tak na prawdę gdzie chcesz, to już zależy od ciebie, i nie masz z góry narzuconego schematu. Bo możesz zarówno w xml, jak i w sqlite trzymać.

Może i pójście na łatwiznę, tyle że to nie jest tworzone dla sztuki podziwiania wykorzystanych mechanizmów, ale do eksploatowania i między innymi zarabiania. A nie zarobisz nic lub niewiele, jeżeli większość twoich dochodów pochłonie nieoptymalna aplikacja.

Ale temat nie o tym. XML odpada w przedbiegach w takim przykładzie jaki podałeś. Używać możesz, działać działa, ale czy jest wydajne to jest kwestia o którą się pyta autor tematu. A xml nigdy nie było dość szybkie.
Go to the top of the page
+Quote Post

Posty w temacie
- adbacz   Wydajność - Dużo folderów, dużo zdjęć.   5.12.2011, 14:19:52
- - skowron-line   Cytat(adbacz @ 5.12.2011, 14:19:52 ) ...   5.12.2011, 14:52:10
- - by_ikar   Nie wiem szczerze mówiąc co tutaj ma ci obciążać, ...   5.12.2011, 14:57:53
- - adbacz   Jesli w bazie mamy tylko ścieżki do plików to spra...   5.12.2011, 15:21:52
- - by_ikar   CytatPS. Może źle zrozumiałeś by_ikar, ale nie cho...   5.12.2011, 17:50:44
- - adbacz   No w sumie masz rację z tymi kategoriami. Niestety...   5.12.2011, 21:02:06
|- - by_ikar   Cytat(adbacz @ 5.12.2011, 21:02:06 ) ...   6.12.2011, 11:26:10
- - cudny   ja ostatnio wpadłem na genialny pomysł. Wiele rzec...   6.12.2011, 10:41:39
- - cudny   Cytat(by_ikar @ 6.12.2011, 11:26:10 )...   6.12.2011, 11:38:59
|- - by_ikar   Cytat(cudny @ 6.12.2011, 11:38:59 ) N...   6.12.2011, 12:31:08
- - adbacz   Ogólnie rzecz biorąc to nie widzę sensu zaprzegać ...   6.12.2011, 12:57:01
- - by_ikar   W przypadku kategorii, użyjesz wówczas 40 razy fil...   6.12.2011, 13:43:24
- - cudny   Cytat(by_ikar @ 6.12.2011, 12:31:08 )...   6.12.2011, 14:47:47
- - by_ikar   CytatCo do trzymania danych w bazie, a w xml to po...   6.12.2011, 15:13:02
- - cudny   Nie pisze tu o otwieraniu 40 plików tylko trzymani...   6.12.2011, 15:28:21
- - by_ikar   CytatNie pisze tu o otwieraniu 40 plików tylko trz...   6.12.2011, 16:04:57
- - cudny   ehh... nie mogę się niestety zgodzić, że za przepr...   6.12.2011, 16:22:29
- - by_ikar   CytatGalerię tworzę sobie zawsze na xml, bo po co ...   6.12.2011, 17:17:02
- - thek   Cudny: Po pierwsze, jeśli uważasz, że drzewiastej ...   6.12.2011, 21:53:48
- - Niktoś   CytatJuż nawet nie mówię, że poprzez pliki XML moż...   6.12.2011, 22:10:29
- - adbacz   Wy mówicie o kategoriach tak? O tym, że żeby pobra...   6.12.2011, 22:13:19
- - by_ikar   CytatWy mówicie o kategoriach tak? O tym, że żeby ...   6.12.2011, 22:48:29
|- - abort   Cytat(by_ikar @ 6.12.2011, 22:48:29 )...   6.12.2011, 23:16:19
- - adbacz   Uwież mi by_ikar, że to z katalogami kategorii pro...   6.12.2011, 23:49:22
- - by_ikar   CytatUwież mi by_ikar, że to z katalogami kategori...   7.12.2011, 00:09:48
- - adbacz   CytatA ja w sumie rozwiązałbym to inaczej. Coś pod...   7.12.2011, 01:43:18


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: 8.10.2025 - 01:00