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
by_ikar
post
Post #2





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

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


Cytat
Co do trzymania danych w bazie, a w xml to powiedz no mi jak ładnie rozwiążesz drzewko kategorii w bazie danych
Widzę, że jeszcze nie przyszło ci pracować z XML lub nie robiłeś żadnego sklepu jeszcze.


Super że po godzinach pracy zajmujesz się wróżbiarstwem, tyle że twoja kryształowa kula, lub fusy, są trefne. Bo przyszło mi pracować, może nie tyle co tobie, ale pracować pracowałem. Chwała bogu że mamy xml, dzięki czemu możemy mieć drzewiaste kategorię w sklepie. Zaraz, czy najpopularniejsze skrypty dostępne w sieci nie trzymają tego drzewka w bazie?

Cytat
i co ? żeby pobrać drzewo kategorii musisz rekurencyjnie dawać zapytanie do bazy - w rezultacie nawet kilka tysięcy zapytań w ułamku sekundy.

Możesz domniemać że nie pracowałem z xml lub pracowałem mało, w twoim przypadku jest odwrotnie, dużo pracowałeś z xml, mało lub wcale z bazą danych.

Cytat
XML jest doskonałym narzędziem do szybkiego dostępu do danych.

skomentuje to tylko tak -> (IMG:style_emoticons/default/smile.gif)

Cytat
Co do parsowania xml biggrin.gif chyba nie do końca rozumiesz jak go używać.
xpatch lub zwykłe wyrażenia regularne.
Myślisz, że baza danych to co to jest ?
To są pliki parsowane po wyrażeniach regularnych, w przypadku mysql napisana w c++

Wiem co to jest, tyle że w przypadku bazy, te dane parsuje odpalony demon, te dane możesz trzymać w pamięci ram, dzięki czemu możesz mieć mega szybki dostęp. A xml to niby jak powstaje? To wszystko musi być parsowane przecież..

Kod
file_exists() to nie jest operacja na plikach biggrin.gif to tylko sprawdza czy coś o podanej ścieżce istnieje.

Racja, to nie jest operacja na plikach, to jest operacja w bazie danych (IMG:style_emoticons/default/wink.gif) a nie sprawdza coś, tylko konkretną rzecz - plik.

Cytat
Mówiąc, że to zwolni aplikację to tak jakby dzielenie plików php na klasy miało też ją spowolnić - przecież też trzeba sprawdzić czy plik istnieje

Każde dodatkowe sprawdzenie czy plik istnieje, czy posiadasz prawa odczytu - to wszystko kosztuje nie tyle co pamięć, co czas potrzebny dla dysku na odczyt.

Cytat
Poco niby zaczytywać niepotrzebne obrazki ? Klient będzie czekał na ich załadowanie ?

Zawsze może poczekać aż się skrypt przeładuje żeby odczytać 40 plików xml (IMG:style_emoticons/default/wink.gif)

Mam prośbę, do kogoś postronnego który mógłby użytkownikowi @cudny wytłumaczyć różnicę w koszcie pobrania danych jednym zapytaniem do bazy, a różnicę kosztu odczytania 40 plików xml i przetworzenia danych zawartych w tych plikach..

Posłuchaj, przecież tutaj nawet nie potrzeba wiedzy w danym temacie żeby odrzucić twoje rozwiązanie. 40 plików xml, to jest 40 odczytów, 40 instrukcji warunkowych sprawdzających czy plik istnieje, czy masz dostęp, oraz 40 instrukcji warunkowych sprawdzających czy w danym xml'u coś w ogóle jest. Jak ten złożony łańcuch instrukcji ma się do instrukcji tylko 40 instrukcji warunkowych, które sprawdzają czy tablica danych pobrana 1 zapytaniem z bazy, zawiera w odpowiednim rekordzie, odpowiednią wartość dla pola miniatury? xml wygląda przy takiej bazie danych wówczas jak żółw kuternoga, kiedy w tym samym czasie baza danych nawet zadyszki nie złapie kilkukrotnie okrążając zmulonego xml'a.

Nikt przy zdrowych zmysłach w skrypcie nie użyłby xml'a nawet do konfiguracji, bez uprzedniego cachowania jego zawartości. A ty tutaj namawiasz do przetworzenia 40 takich plików. Faktycznie genialne, jeżeli chce się zabić serwer.

PS. mam prośbę do ciebie @cudny, weź przygotuj jakieś demko swojego rozwiązania online, niech ten skrypt otwiera 4 plików xml, z zapisem o jakim wcześniej wspomniałeś. Wrzuć dodatkowo jakieś memory_get_usage/peag_usage i przy okazji czas wykonywania skryptu. Może podczas sprawdzania twojego rozwiązania, dojdziesz do wniosku że twój pomysł z wydajnością ma niewiele wspólnego..

Ten post edytował by_ikar 6.12.2011, 15:19:32
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 12.10.2025 - 12:57