![]() |
![]() |
![]()
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ć? |
|
|
![]() |
![]()
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 12:57 |