Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak dużo robi wam baza?
Sedziwoj
post 12.09.2008, 13:16:16
Post #1





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


Prosta rzeczy, ile różnych obliczeń, operacji itp. robicie w bazie, a ile w tym czym programujecie (bo do PHP nie musimy się ograniczać)?
Bo ja dość sporo operacji, jeśli mogę przerzucam na bazę, z prostego powodu zrobi to szybciej, nie tylko że można sobie funkcje pisać w czym się podoba (prawie) ale też że niektóre rzeczy są optymalizowane.
Wiadomo count() itp. rzeczy robi się na bazie, ale czasem można o wiele więcej, np. system trigger'ów które robią odpowiednie akcje zależne, zamiast pisania tego w kodzie aplikacji. Różne obliczenia na danych z bazy, gdzie zwraca się tylko wynik.

Jak to u Was wygląda, bo kiedyś spotkałem się z opinią że lepiej nie używać niczego co oferują bazy, bo przy wdrążeniu na inną bazę robią się schody.


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
3 Stron V   1 2 3 >  
Start new topic
Odpowiedzi (1 - 55)
Black-Berry
post 12.09.2008, 13:26:42
Post #2





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


U mnie okoł 1/5 czasu wykonywania całości to baza. Zauważyłem jednak, że im mniej zapytań stosuję tym lepiej wszystko działa. Nie chodzi tylko o ilość ale też o ich złożoność. Moim zdaniem im mniej robi baza tym lepiej bo zawsze możesz postawić 3 maszyny które wykonują kod a tylko jedną która obsługuje bazę. Jeśli masz więcej niż jedną bazę to sprawy mogą sie skąplikować. To jednak czyste teoretyzowanie smile.gif

Pozdrawiam.

Ten post edytował Black-Berry 12.09.2008, 13:26:57


--------------------
Go to the top of the page
+Quote Post
nospor
post 12.09.2008, 13:27:20
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
bo przy wdrążeniu na inną bazę robią się schody
Wystarczy wdrozyc na inny hosting i juz masz problem.
W prywatnej pracy unikam triggerow i funkcji itp.
Czesto mam klienta co ma hosting gdzie nie ma mysql5 i juz bym mial problem.
Nawet jak ma mysql5 to nie ma prawa na zakladanie triggerow i znowu zonk.

W pracy, gdzie mamy wlasne serwery wszystko co sie da idzie na baze.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kwiateusz
post 12.09.2008, 14:12:43
Post #4


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




jakiś czas temu ktoś dawał link jak różne firmy radzą sobie z dużym trafficiem i tak mi sie zapamiętał ebay gdzie była maksyma żeby język robił wszystko, a baza minimum bo łatwiej postawić kilka serwerów które będą wykonywać skrypty/programy niż kolejną bazę ustawiając wszystkie opcje dot. replikacji itp
Go to the top of the page
+Quote Post
Cysiaczek
post 12.09.2008, 14:26:30
Post #5





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Myślę, że ~nospor ma sporo racji, bo jeśli piszemy system dedykowany, to możemy dać bazie więcej pracy. Jeśli jest to jednak system, który musi być instalowalny na różnych platformach, to lepiej grzebać w aplikacji. Myślę więc, że na to pytanie jest jedna, znienawidzona przez wielu maksyma: "zależy od okoliczności" smile.gif

Pozdrawiam.


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
Black-Berry
post 12.09.2008, 15:25:09
Post #6





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


Cytat(Cysiaczek @ 12.09.2008, 14:26:30 ) *
Myślę więc, że na to pytanie jest jedna, znienawidzona przez wielu maksyma: "zależy od okoliczności" smile.gif
Jak będziemy mieli takie podejście to nigdy nie znajdziemy odpowiedzi na nasze pytania biggrin.gif

Zastanawiam się... Po co właściwie baza miałaby wykonywać cokolwiek poza selectami i updatami? Moim zdaniem jeśli coś mieści się w wydajności 50%:50% (silnik/baza) to zawsze powinniśmy wybierać silnik. Replikowanie się baz danych to śliski temat i na pewno podczas takich operacji coś się może zepsuć częściej niż replikacja silnika.

Swego czasu było na forum dużo tematów o cachowaniu zapytań do bazy. Jak dla mnie to straszna głupota. Jeśli mamy system który tylko 10% czasu poświęca na zapytania to zwiększenie wydajności zapytań o 50% daje nam tylko 5% przyrostu wydajności całkowitej. Dlatego jeśli mamy mało obciążoną bazę to możemy dać jej spokój a nasze wysiłki skierowac w poprawę wydajności silnika np cachując cały render strony. W ten sposób za jednym zamachem cachujemy także zapytania do bazy.


--------------------
Go to the top of the page
+Quote Post
fernet
post 12.09.2008, 15:38:20
Post #7





Grupa: Zarejestrowani
Postów: 91
Pomógł: 1
Dołączył: 22.03.2007

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


Dla mnie baza danych jak sama nazwa wskazuje to baza z danymi a nie jakies (liczydlo) i uj mnie strzela jak widze wpisy dat z jakims kosmicznym formatowaniem zamiast znaczkow czasu. Nie rozumiem kolesi z mysql ktorzy rozwijaja swoj produkt w tym kierunku chyba im sie nudzi.


--------------------
Czy sprzedal sie juz czy dopiero ma? Oto pytanie, ktore stawiam wam. A czemu gdy byl, to nic tylko spal? Ze mna co lubie go gadac nic nie chcial. A czemu to gra, a tamtego nie. Chyba nas wszystkich nic nie szanuje. Jaki byl kiedy pil? Jaki byl kiedy gral? Czy to ten czlowiek sam czy moze rozni dwaj?
Go to the top of the page
+Quote Post
athabus
post 12.09.2008, 16:09:03
Post #8





Grupa: Zarejestrowani
Postów: 898
Pomógł: 48
Dołączył: 2.11.2005
Skąd: Poznań

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


Zgodzę się z tym co napisał Black-Bery że cachowanie zapytań do bazy z reguły ma mały sens. Również raczej staram się cachować całe akcje gdy tylko jest to możliwe.
Ogólnie raczej jestem z tych co przerzucają wszystko na kod. Z bazy korzystam raczej na zasadzie odczyt/zapis. Jakoś nie mogę się przekonać do stosowania trigerrów itp (choć wiem, że to błąd) - raczej daje takie rzeczy w modelu. Powód jest prosty - podczas kodowania łatwiej mi jest połapać się, gdy wszystko mam w jednym miejscu. I tak już śledzenie wszystkich wyzwalaczy w modelu jest trudne a co dopiero gdy przerzucimy część kodu na bazę.
Z drugiej strony wyzwlacze w bazie mają tą zaletę, że nie usunie się ich przypadkowo przy refactoringu.

Co do współdzielonych hostingów to zauważam taką tendencję, że bazy zazwyczaj są wąskimi gardłami - przemawia to dodatkowo na korzyść kodu. Baza często nie jest tak dokładnie monitorowana jak same skrypty przez co zdarzają się userzy wykonujący masakryczne zapytania.
Go to the top of the page
+Quote Post
sf
post 13.09.2008, 06:53:00
Post #9





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

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


Cytat(Sedziwoj @ 12.09.2008, 14:16:16 ) *
Jak to u Was wygląda, bo kiedyś spotkałem się z opinią że lepiej nie używać niczego co oferują bazy, bo przy wdrążeniu na inną bazę robią się schody.


Ja się nie zgodzę z nospor i stwierdzam, że należy używać triggerów. Zresztą ja mu się dziwie, że robi projekty na wersji poniżej MySQL5 bo technicznie te serwisy są w tyle za konkurencją. Zresztą na nazwa już nie ma baz poniżej MySQL5.

Natomiast przenoszenie serwisu z jednej bazy na inną jest sprawą dość delikatną. Kiedyś jak byłem młodszy to jeszcze się w to bawiłem, ale aktualnie to klient musi spełnić wymagania sprzętowe, które zostają określone na samym początku zawarcia umowy. Przecież serwer to jest bardzo mała część ceny serwisu więc w ogóle nie ma mowy by dostosowywać się do tego co sobie kupił kiedyś klient.


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
Black-Berry
post 13.09.2008, 07:48:56
Post #10





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


No dobrze ale pokazałeś że to nie musi być problem w przypadku kiedy serwis nie jest na tyle duży aby trzeba było duplikować sprzętu. A jakie to ma korzyści? Jasne, że jeśli mamy serię zapytań to warto z niego zrobić jedno triggerem ale chyba lepiej nie przesadzać i stosowac to tylko jeśli znacząco ma się przez to poprawić wydajność. SQL i PHP to tak samo języki skryptowe i nie wydaje mi się żeby przepuszczenie pętli przez trigger działało szybciej niż przepuszczenie jej przez PHP. No chyba że robimy pętlę zapytań smile.gif To wtedy jak najbardziej trigger żeby za każdym razem nie zwracać wyników.

Ten post edytował Black-Berry 13.09.2008, 08:10:16


--------------------
Go to the top of the page
+Quote Post
chlebik
post 13.09.2008, 09:31:32
Post #11





Grupa: Zarejestrowani
Postów: 113
Pomógł: 5
Dołączył: 12.09.2006
Skąd: Pruszków/Warszawa

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


Cytat
Swego czasu było na forum dużo tematów o cachowaniu zapytań do bazy. Jak dla mnie to straszna głupota. Jeśli mamy system który tylko 10% czasu poświęca na zapytania to zwiększenie wydajności zapytań o 50% daje nam tylko 5% przyrostu wydajności całkowitej.


A co w przypadku aplikacji gdzie baza stanowi 90% questionmark.gif Akurat mialem okazje glownie z takimi pracowac - jedna co prawda smigala na dedyku w firmie, a terminale staly obok wiec szybkosc spora. Ale Teraz z kolei pracuje przy tworzeniu aplikacji, ktora prawie w kazdej akcji ciagnie z bazy od cholery requestow - w tym momencie (pomimo poteznych serwerow, zarowno bazy jak i www, load-balancera i innych tego typu) wrzucanie rzeczy do cache'a jest nieunikniona koniecznoscia.

Ten post edytował chlebik 13.09.2008, 09:31:48


--------------------
"Człowiek dążący do swego celu może być skuteczny tylko w przypadku, jeśli każdą minutę swego życia wykorzysta z maksymalną korzyścią dla osiągnięcia zaplanowanego celu. Jeśli stworzył dla siebie system kar i karze sam siebie za każdą zmarnowaną minutę. Człowiekowi w zupełności wystarczą 3-4 godziny snu, cały pozostały czas może być wykorzystany dla osiągnięcia upragnionego celu." -- Wiktor Suworow
Java devBlog
KulturalnyChlebik
Go to the top of the page
+Quote Post
kwiateusz
post 13.09.2008, 09:36:22
Post #12


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




no to chyba logiczne ze jak 90% aplikacji to baza to trzeba ja cachowac... mozna to łątwo wywnioskowac z wypowiedzi ~Black-Berry
Go to the top of the page
+Quote Post
Sedziwoj
post 14.09.2008, 15:40:58
Post #13





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


Cytat(sf @ 13.09.2008, 07:53:00 ) *
Natomiast przenoszenie serwisu z jednej bazy na inną jest sprawą dość delikatną. Kiedyś jak byłem młodszy to jeszcze się w to bawiłem, ale aktualnie to klient musi spełnić wymagania sprzętowe, które zostają określone na samym początku zawarcia umowy. Przecież serwer to jest bardzo mała część ceny serwisu więc w ogóle nie ma mowy by dostosowywać się do tego co sobie kupił kiedyś klient.


No właśnie nie do końca, bo trafi Ci się olbrzymi klient korporacyjny, który używa w całej firmie jednego typu bazy, to dla widzimisię nie ustawi innej, bo musi mieć nowe osoby techniczne itp. itd. Więc czasem bywa że mimo dużych projektów, trzeba zmienić bazę na taką co klient chce.

Jak widać pojawia się problem z rzucaniem pewnych operacji na bazę, jeśli jest ona mocno obciążona. (teraz nie mam głowy aby to przemyśleć, zrobię to później)

Dorzucę jeszcze nie poruszoną rzecz w całej tej dyskusji, jeśli z tej bazy nie korzysta tylko stronka, ale też inne aplikacje, czyli mamy zintegrowany system. Bo wtedy jeśli jakieś operacje muszą być wykonane zawsze na bazie, to przy każdym dodaniu/zmianie trzeba przerabiać kod w co najmniej dwóch aplikacji, co będzie kłopotliwe, a jak to się znajdzie na poziomie bazy, to będzie wspólne miejsce i łatwe do utrzymania.
Jeszcze poruszę taką sprawę, że przy logice na poziomie bazy, da się pilnować operacje które są wykonywane bezpośrednio na niej, bez użycia kodu aplikacji.


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
Black-Berry
post 14.09.2008, 16:46:18
Post #14





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


Faktycznie jeśli sa 2 aplikacje korzystające z jednej bazy to problem. Zastanów się jednak co by było gdybyś napisał tony triggerów i całą logikę biznesową wrzucił na bazę ? (bo tak wypadałoby zrobić w takim wypadku). Niby wygoda jest bo wszystko w 1 miejscu. Jeśli jednak wszystko zacznie zamulać to budzisz się z ręką w nocniku bo jedyne co pozostaje to replikacje bazy.

  • zapytania / zapytania + system
  • 0.1117s / 0.14639s
  • 0.00585s / 0.04339s
  • 0.00471s / 0.05692s
  • 0.18388s / 0.25378s
  • 0.00512s / 0.04048s
  • 0.00507s / 0.04623s
  • 0.3443s / 0.37961s
  • 0.2653s / 0.29963s

To są czasy działania aplikacji na serwerze anzwa.pl. Zauważcie, że czas wykonywania systemu to ok. 0.004s. i jest w miarę stały. Czasy zapytań wariują. Wniosek z tego prosty, że tylko baza zamula. Tak jak już tu było wcześniej pisane. Wydaje mi się że bazy mySQL są mniej zoptymalizowane niż PHP. Gdyby było inaczej to czemu takie wyniki ?


--------------------
Go to the top of the page
+Quote Post
Sedziwoj
post 14.09.2008, 17:33:08
Post #15





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


@Black-Berry
Mówisz, jak duża część, o MySQL, ja częściej stosuję PostgreSQL, a to też jest czubek góry, bo przecież mamy inne bardziej zaawansowane bazy danych, o tym trzeba pamiętać, co jest dobre dla małych stron, a co może się przydać w dużych. Czasem taniej wyjdzie rozłożyć bazę danych na wiele serwerów, niż utrzymywać kod w samych aplikacjach.
Do tego czasem to co robią funkcje na bazie, wymagało by wielokrotnych odwołań do bazy, pobierających multum danych, więc nie jestem przekonany że zawsze było by szybciej.


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
Black-Berry
post 14.09.2008, 18:03:49
Post #16





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


Oczywiście zgadzam się, że warto przerzucać część na bazę. Ja mówię z perspektywy mojego małego CMS'a którego już piszę 3 rok samodzielnie:) W dużych firmach bazami danych zajmują się nie programiści ale goście od bazy danych i to oni pisza triggery. (Mój kolega ze studiów np jest gościem od baz żeby nie być gołosłownym). Wielkie projekty używają baz oracl'a i zajmują się nimi specjaliści. Zwykli programiści zajmują się czym innym.

Patrząc z perspektywy CMS-ów opartych o php i mySQL nie obciążałbym bazy. Jeśli jednak robisz coś innego to czemu by nie. Jednak triggerami powinien się zająć programista baz danych. Nie wydaje mi się żeby jedna osoba mogła znać się na wszystkim.


--------------------
Go to the top of the page
+Quote Post
Cysiaczek
post 14.09.2008, 22:29:35
Post #17





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Nie czasy zapytań, tylko połączenie i oczekiwanie na odpowiedź z bazy. To jest wąskim gardłem. Kiedyś sprawdzałem to empirycznie - nawet na localhoście skrypt php wykonuje się dłużej, jeśli akurat źle trafi z połączeniem. Same zapytania trwają zwykle podobnie. Nie wiem z czego to wynika, ale możecie sobie sami przetestować licząc międzyczasy.

Pozdrawiam


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
Black-Berry
post 14.09.2008, 22:35:02
Post #18





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


Cytat(Cysiaczek @ 14.09.2008, 23:29:35 ) *
To jest wąskim gardłem. Kiedyś sprawdzałem to empirycznie - nawet na localhoście skrypt php wykonuje się dłużej, jeśli akurat źle trafi z połączeniem.
łoooooo!! Nie wydaje się wam że to bardzo dziwne ? Jakiś bład apacha czy coś ? Nie można przecież tak poprostu źle trafić ?


--------------------
Go to the top of the page
+Quote Post
Cysiaczek
post 14.09.2008, 22:39:56
Post #19





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




To policz ile się wykonuje mysql_connect() smile.gif

Cytat
0.020272970199585
0.019511938095093
0.021259784698486
0.006248950958252
0.0003659725189209
0.021076917648315
0.020316123962402
0.021085023880005
0.021122217178345
0.021095991134644
0.020627975463867
0.020335912704468
0.024362087249756
0.021245002746582
0.021530151367188
0.022016048431396
0.003173828125
0.021080017089844
0.030810117721558
0.020860910415649


Oczywiście to jest desktop, nie serwer - na produkcyjnym rozrzut może być mniejszy i czasy też smile.gif


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
Black-Berry
post 14.09.2008, 22:53:00
Post #20





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


No to ja już nie wiem o co chodzi. To nie może przecież działać na zasadzie losowości. To komputer a nie reaktor jądrowy.


--------------------
Go to the top of the page
+Quote Post
Pilsener
post 15.09.2008, 08:01:57
Post #21





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Cytat(kwiateusz @ 12.09.2008, 13:12:43 ) *
jakiś czas temu ktoś dawał link jak różne firmy radzą sobie z dużym trafficiem i tak mi sie zapamiętał ebay gdzie była maksyma żeby język robił wszystko, a baza minimum bo łatwiej postawić kilka serwerów które będą wykonywać skrypty/programy niż kolejną bazę ustawiając wszystkie opcje dot. replikacji itp


Podpisuję się pod tym. Baza jest od przechowywania danych - silnik PHP daje większe możliwości, wydajność, elastyczność etc. - moc silnika łatwo zwiększyć dodając serwer - z bazą gorzej. Dlatego uważam, że o bazę trzeba dbać i nie zlecać jej ablativów absolutów. Gdy mamy problem z wydajnością aplikacji to najczęściej dotyczy on tylko jej fragmentu - jak zamulimy bazę to kaplica, bo wszystkie korzystające z niej aplikacje będą mulić, choćby miały super optymalne silniki.
Go to the top of the page
+Quote Post
LBO
post 16.09.2008, 20:56:52
Post #22





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


@Sedziwoju - znalazłem dosyć ciekawy artykuł, równie iekawego autora na ten temat.

Domain Logic and SQL
Go to the top of the page
+Quote Post
Sedziwoj
post 18.09.2008, 12:29:36
Post #23





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


@LBO
Dzięki, na pewno przeczytam.
Choć artykuł już ma 5 i pół roku, ale zawsze coś naświetli.


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
LBO
post 18.09.2008, 13:16:58
Post #24





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


Cytat(Sedziwoj @ 18.09.2008, 13:29:36 ) *
Choć artykuł już ma 5 i pół roku, ale zawsze coś naświetli.


Te zagadnienia się nie starzeją smile.gif
Go to the top of the page
+Quote Post
siriondil
post 19.09.2008, 14:30:23
Post #25





Grupa: Zarejestrowani
Postów: 13
Pomógł: 1
Dołączył: 17.09.2008

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


na jednym z kursów na jakich był kolega mówiono ze triggery są złym rozwiązaniem, ponoć ich używanie świadczy o braku kontroli programisty nad bazą danych...
Go to the top of the page
+Quote Post
Sedziwoj
post 19.09.2008, 14:41:19
Post #26





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


Cytat(siriondil @ 19.09.2008, 15:30:23 ) *
na jednym z kursów na jakich był kolega mówiono ze triggery są złym rozwiązaniem, ponoć ich używanie świadczy o braku kontroli programisty nad bazą danych...


Tak na szybko przykład wymyślony, załóżmy że masz logować zmiany w jakiejś tabeli, czyli robić wersjonowanie.
Na trigger'ach piszesz on update i leci kopia do logu. Teraz bez, piszesz coś co podpięte jest pod możliwość edycji i tam to samo robisz, ale jest pewien problem, bo z bazy korzysta parę aplikacji, więc w każdej musisz to zrobić, do tego jeśli ktoś ma bezpośredni dostęp do bazy to może coś zmienić a nikt tego nie zobaczy.
Za dużo możliwych pominięć.
To jakby mówić że klucze obce są złe, bo powinno się samemu pilnować, a trigger'y po prostu dają o wiele większe możliwości.


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
Black-Berry
post 19.09.2008, 14:48:19
Post #27





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


Ja to bym rozgraniczył problem dla 2 grup:
  • jeśli piszesz silnik gdzi eliczy się maksymalna wydajnosć to bez triggerów
  • jeśli aplikację to lepiej ich używać żeby było lepiej widać operacje


--------------------
Go to the top of the page
+Quote Post
nospor
post 19.09.2008, 15:01:31
Post #28





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Tak na szybko przykład wymyślony, załóżmy że masz logować zmiany w jakiejś tabeli, czyli robić wersjonowanie.
Na trigger'ach piszesz on update i leci kopia do logu. Teraz bez, piszesz coś co podpięte jest pod możliwość edycji i tam to samo robisz, ale jest pewien problem, bo z bazy korzysta parę aplikacji, więc w każdej musisz to zrobić, do tego jeśli ktoś ma bezpośredni dostęp do bazy to może coś zmienić a nikt tego nie zobaczy.
Za dużo możliwych pominięć.
Rownie dobrze mozna dac kontr przyklad:
Owszem, niech sie dane zapisuje przy modyfikacji, ale nie dla kazdego. np. chce by zmiany robione przez super admina nie przechodzily przez twoje triggery. I klops. Triger na bazie nie wie czy to robi super admin czy nie. A aplikacja wie winksmiley.jpg

Mozna tak gadac bez konca tylko po co? Moze jednak przyjac wniosek, ktory padl juz tu kilkukrotnie:
wszystko zalezy od sytuacji, od serwisu, od tego co nam w danym projekcie potrzebne


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Sedziwoj
post 19.09.2008, 15:44:05
Post #29





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


@LBO
Tylko ten artykuł ma jeszcze jedną wadę, autor pisze kod w Ruby, a mnie cholera bierze, już bym wolał pseudo kod, przykłady mają być aby pokazywać o czym jest mowa, a nie pokazywać ile sztuczek się umie w danym języku.

@nospor
W ten sposób podchodząc nie ma co dyskutować o czymkolwiek.

I ja obalałem to że nie ma sensu używać triggerów, a nie że zawsze je się powinno używać, a dałeś antytezę tego, do tego zmieniłeś specyfikacje problemu. Można tez założyć że aby dostać się jako admin ma się inne konto w bazie, a to już pozwala trigger'owi działać zgodnie z Twoimi założeniami. Czy... można wymyślać.

Problem właśnie jest kiedy coś można zrobić na bazie, ale czy powinno się.
Tak jak można dawać bardziej złożone zapytania do bazy, lub pobierać surowe dane i przetwarzać w aplikacji.


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
nospor
post 19.09.2008, 19:46:17
Post #30





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@Sedziwoj ja jedynie podsumowalem watek winksmiley.jpg

triggery, procedury są dobre. W duzych projektach, nad ktorymi pracuje w pracy, ich uzywam. Wykorzystujemy baze ile sie da.
W malych projektach co robie prywatnie unikam trigerow i innych takich cudow, bo przyspoza mi wiecej problemow niz pozytku. Wole dana rzecz zrobic w aplikacji.
Dlatego pisze, ze to zalezy od sytuacji. Pytanie w tym temacie jest bardzo ogolne i kazdy bedzie mial swoje zdanie.
Jakby sprecyzowac sytuacje, to mozna by pogadac


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mike
post 19.09.2008, 20:09:42
Post #31





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(Sedziwoj @ 19.09.2008, 16:44:05 ) *
@nospor
W ten sposób podchodząc nie ma co dyskutować o czymkolwiek.
Nie każda dyskusja prowadzi do konkretnej odpowiedzi. Akurat ta, która się tu toczy ma jedyne możliwe rozstrzygnięcie: To zależy.
A jak ktoś ma wątpliwości i koniecznie chce znaleźć odpowiedź inną to piszcie tongue.gif

Tak czy inaczej to jest to kolejny wątek o poszukiwaniu jedynej słusznej rozdzielczości tongue.gif
Go to the top of the page
+Quote Post
Sedziwoj
post 20.09.2008, 07:48:53
Post #32





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


Ech, chyba zbytnio przyjęliście sobie "to zależy". Wątek jest ogólny, ale przecież nikt nie mówi że nie można dawać przykładów bardziej szczegółowych. Chociażby już dwukrotnie podany przeze mnie przykład bazy z której korzysta wiele różnych aplikacji. Do tego mówienie, że u klientów się nie da zawsze zrobić jak "powinno", tylko trzeba to zaznaczyć, ale przez to nie urywać dyskusji.
Choć w sumie nospor już napisał co o tym sądzi, mimo negatywnego podejścia do dalszej dyskusji.

Moim zdaniem jest ważne, że niektóre operacje na poziomie bazy danych są optymalizowane przez silnik, więc koszt wykonania ich tam, jest czasem wielokrotnie niższy, niż jakby miała to zrobić aplikacja.


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
Black-Berry
post 20.09.2008, 07:51:52
Post #33





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


Ja mogę dodać jeszcze, że ostatnio po przeczytaniu Twojego wątku doszedłem do wniosku, że lepiej zrobić sesję na plikach żeby nie obiążać bazy. Skończyło się tragicznie smile.gif Pliki tak zmulały, że musiałem na drugi dzień przepisać na wersję z mySQL i od tego czasu śmiga.


--------------------
Go to the top of the page
+Quote Post
Sedziwoj
post 20.09.2008, 18:20:54
Post #34





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


Cytat(Black-Berry @ 20.09.2008, 08:51:52 ) *
Ja mogę dodać jeszcze, że ostatnio po przeczytaniu Twojego wątku doszedłem do wniosku, że lepiej zrobić sesję na plikach żeby nie obiążać bazy.


Możesz rozwinąć, bo czuję się oskarżony o coś czego nie zrobiłem?


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
Black-Berry
post 21.09.2008, 10:45:59
Post #35





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


Wnioski były tylko moje (jak już napisałem wcześniej - bardzo błędne). W żadnym wypadku nie twierdzę że zasugerowałeś mi robienie sesji na plikach. Poprostu zacząłem się zastanawiać co byłoby bardziej wydajne. W pierwszej chwili pomyślałem, że wydajniejsze muszą być pliki co okazało się błędnym założeniem.

Wiem, że to wątek bardziej o triggerach więc może gadam bez sensu ale chce zaznaczyć że nie zawsze aplikacja zrobi coś szybciej i lepiej niż baza. Zaryzykowałbym nawet stwierdzenie że jest wręcz przeciwnie ale nie chce teoretyzować bez testów. Jedno jest pewne. Sesja na plikach działa wolniej niż na bazie MySQL bo sprawdziłem w praktyce.


--------------------
Go to the top of the page
+Quote Post
athabus
post 21.09.2008, 10:57:51
Post #36





Grupa: Zarejestrowani
Postów: 898
Pomógł: 48
Dołączył: 2.11.2005
Skąd: Poznań

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


Cytat(Black-Berry @ 21.09.2008, 11:45:59 ) *
Jedno jest pewne. Sesja na plikach działa wolniej niż na bazie MySQL bo sprawdziłem w praktyce.


Nie możesz tak mówić - wszystko zależy od konfiguracji i obciążenia poszczególnych elementów. Gdy np. baza zamula to sesja na bazie będzie kiepskim wyjściem. Już o tym pisałem, ale powtórzę, że zdarzyło mi się "przepisać" aplikację na OO z użyciem frameworka. Na localu nowa wersja chodziła wolniej od starej (zdaje się że ponad 2-krotnie) (wiadomo więcej kodu, framework itd), ale na serwerze (współdzielonym) okazało się, że nowa wersja chodzi ponad 2 razy szybciej od starej (na tym samym koncie) - okazało się, że akurat na tym hostingu muliła baza, a nowa wersja miała lepiej skonstruowane zapytania.
W Twoim przypadku mogło być zupełnie odwrotnie - tj. trafiłeś na serwer gdzie baza była nieużywana (albo robiłeś testy na localu) a problem stanowiło dużo operacji na plikach/kiepski dysk twardy itp. Ogólnie praktyka to rzecz względna. W przypadku aplikacji php w ogóle trudno mówić o wydajności jeśli nie stoi ona na dedyku - w innych przypadkach dużo zależy od twoich "sąsiadów".
Go to the top of the page
+Quote Post
Black-Berry
post 21.09.2008, 11:14:38
Post #37





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


No ale wracając do triggerów... Trudno mi wyobrazić sobie, że mogłyby one być czymś złym. Jeśli mamy np. metodę dodającą wpis do jakiegoś drzewa to powiedzmy że dzieje się to poprzez 20 zapytań. Jeśli jednak napiszemy sobie triggera który wykona to jednym zapytanie to chyba będzie szybciej. Jak już tutaj ktoś pisał wczesniej najgorsze są czasy oczekiwań. Więc im mniej zapytań tym lepiej. Nie chodzi o ich złożoność ale o ilość.


--------------------
Go to the top of the page
+Quote Post
phpion
post 21.09.2008, 11:21:11
Post #38





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




@Black-Berry:
Jeśli do danej operacji potrzeba wykonania 20 zapytań to użycie triggerów nie wyeliminuje pozostałych 19 jak sugerujesz. Zostaną one i tak wykonane ale zostaną uruchomione bezpośrednio po stronie bazy danych. Aplikacja kliencka odpali jedynie zapytanie, które spowoduje uruchomienie triggera. To tak dla ścisłości.

Ale wracając do głównego tematu wątku. W pracy aktualnie staramy się pisać wszystko z użyciem PostgreSQL. Jak wiadomo daje on dużo większe możliwości niż MySQL (triggery w MySQL są po prostu tragiczne...). Staramy się jak najwięcej pracy zrzucić właśnie na bazę danych. Przykładowo: drzewo kategorii z produktami. Podczas aktualizacji powiązań produkt <-> kategoria automatycznie aktualizowana jest liczba produktów w danej kategorii oraz kategoriach nadrzędnych. Zdecydowanie ułatwia to sprawę szczególnie iż do pracy używamy Symfony. Zastosowanie takiej funkcjonalności bez triggerów komplikowałoby pracę o tyle, iż należałoby (w tym przypadku) modyfikować pliki backendu o "ręczne" wywoływanie koniecznych korekt w bazie.

Ten post edytował phpion 21.09.2008, 11:37:53
Go to the top of the page
+Quote Post
Black-Berry
post 21.09.2008, 11:39:02
Post #39





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


Cytat(phpion @ 21.09.2008, 12:21:11 ) *
@Black-Berry:
Jeśli do danej operacji potrzeba wykonania 20 zapytań to użycie triggerów nie wyeliminuje pozostałych 19 jak sugerujesz. Zostaną one i tak wykonane ale zostaną uruchomione bezpośrednio po stronie bazy danych. Aplikacja kliencka odpali jedynie zapytanie, które spowoduje uruchomienie triggera. To tak dla ścisłości.
Rozumiem. Dlatego pisałem że lepiej uruchomić jedno zapytanie po stronie aplikacji bo najbardziej mulą połączenia. A w takiej sytuacji połaczeń będzie nie 20 tylko 1.

Ten post edytował Black-Berry 21.09.2008, 11:39:22


--------------------
Go to the top of the page
+Quote Post
LBO
post 21.09.2008, 11:43:59
Post #40





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


Jedyne wnioski jakie ja wyciągam, że użycie triggerów po części wiąże aplikacje z konkretną bazą - tak samo jest z procedurami.
Osobiście mi się to nie podoba, gdyż lubię mieć pełną logikę biznesową w całości po stronie programistycznej.

Mówiąc prościej używałbym Ich gdybym był zmuszony :
1. Pisać aplikację pod już istniejącą bazę.
2. Zapytania wykonywane przez triggery byłyby dla aplikacji transparentne.

Pozdrawiam, Alan
Go to the top of the page
+Quote Post
Sedziwoj
post 21.09.2008, 14:39:00
Post #41





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


Cytat(LBO @ 21.09.2008, 12:43:59 ) *
2. Zapytania wykonywane przez triggery byłyby dla aplikacji transparentne.

?
To ja nie wiem jaką masz definicję transparentne...

Cała sprawa rozbija się o parę spraw:
- przenośność aplikacji, wiadomo im więcej korzystamy z specyficznych rzeczy tym trudniej
- tym że baza potrafi niektóre rzeczy zoptymalizować, tak jak na poziomie kodu się nie da, bo może Wam się wydaje, że mowa tylko o trigger'ach czy procedurach, ale chodzi też o sortowanie, filtrowanie itd. przecież też da się to zrobić w kodzie, ale jakoś nikt tego nie robi (tylko początkujący), więc może macie apatię do pewnych rzeczy.
- czasami baza jest i tak przeciążona, więc czy zawsze jest to na korzyść pod względem wydajności
- sytuacje kiedy z bazy korzysta wiele aplikacji, jeśli czegoś się nie zrobi na poziomie bazy, trzeba uwzględnić wszędzie.
- nawet przy bezpośrednich operacjach na bazie, jest utrzymywany pewien porządek.
bo chyba o to się cała sprawa rozbija. (wiadomo, że dużo zależy od przypadku, ale można omówić poszczególne i co w nich lepiej wychodzi)


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
LBO
post 21.09.2008, 14:45:19
Post #42





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


Cytat(Sedziwoj @ 21.09.2008, 15:39:00 ) *
To ja nie wiem jaką masz definicję transparentne...


Takie których może nie być w samej aplikacji, dodatek, na bazie którego można ewentualnie zbudować coś innego (statystyki, logi).

edit:

Jest jeszcze jedna rzecz, która skłoniłaby mnie do triggerów. Bezowocna walka z wydajnością, która zmusiłaby mnie nawet do tego, żeby zamiast 2 zapytań wysyłać jedno smile.gif

Ten post edytował LBO 21.09.2008, 14:50:13
Go to the top of the page
+Quote Post
wlamywacz
post 21.09.2008, 17:51:46
Post #43





Grupa: Zarejestrowani
Postów: 535
Pomógł: 27
Dołączył: 3.05.2005

Ostrzeżenie: (20%)
X----


A ja powiem że ostatnio `przejechałem` się na trigerach bo okazało się że na serwerze roboczym był mysql 4.x.x i trzeba było przepisać kilka modeli. Aktualnie już nie wykorzystuje trigerów wole zrobić wszystko po stronie php na transakcji.
Go to the top of the page
+Quote Post
phpion
post 21.09.2008, 17:58:19
Post #44





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




@wlamywacz:
Jeżeli podchodzisz do roboty "no to jadziem!" to nie dziw się, że potem masz problemy. Najpierw należało wybadać grunt, na którym będziesz stawiał aplikację. Takim podejściem skreślasz triggery w śmieszny sposób. A co jeśli by się okazało, że na serwerze nie ma bazy danych? Pisałbyś, że wolisz robić wszystko na plikach bo nie wszędzie jest baza danych? To co piszesz jest głupie *.

* bez urazy
Go to the top of the page
+Quote Post
Black-Berry
post 21.09.2008, 18:12:50
Post #45





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


Cytat(phpion @ 21.09.2008, 18:58:19 ) *
@wlamywacz:
Jeżeli podchodzisz do roboty "no to jadziem!" to nie dziw się, że potem masz problemy. Najpierw należało wybadać grunt, na którym będziesz stawiał aplikację. Takim podejściem skreślasz triggery w śmieszny sposób. A co jeśli by się okazało, że na serwerze nie ma bazy danych? Pisałbyś, że wolisz robić wszystko na plikach bo nie wszędzie jest baza danych? To co piszesz jest głupie *.

* bez urazy

Nie zgodze się. Co jeśli ktoś (np ja) nastawia się na masówkę ? Wtedy lepiej nie stosować triggerów żeby nie ograniczać sobie klientów.

Różne jaja są. Często bywa tak, że jakaś firma ma stary serwer i chce CMS'a na tym postawić. Jeśli się jej proponuje nowy hosting to robi się kwas. Część starych programó mają na mysql4 i teraz jesli kupią nowy to muszą stare updatować albo opłacać 2 serwery.


--------------------
Go to the top of the page
+Quote Post
wlamywacz
post 21.09.2008, 18:26:45
Post #46





Grupa: Zarejestrowani
Postów: 535
Pomógł: 27
Dołączył: 3.05.2005

Ostrzeżenie: (20%)
X----


No tak tylko zauważ że jedną aplikację robiłem dla kilku klientów. Poza tym ja ustaliłem wymagania dla aplikacji nie on. To jest jak z gramy np. najnowsza gra nie pójdzie Ci na starym sprzęcie.

Aaa i nie było mowy o updacie softu gdyż inne aplikacji by się `sypnęły`

Ten post edytował wlamywacz 21.09.2008, 18:27:39
Go to the top of the page
+Quote Post
phpion
post 21.09.2008, 18:39:02
Post #47





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(Black-Berry @ 21.09.2008, 19:12:50 ) *
Nie zgodze się. Co jeśli ktoś (np ja) nastawia się na masówkę ? Wtedy lepiej nie stosować triggerów żeby nie ograniczać sobie klientów.

Mając takie podejście to najlepiej w ogóle olać bazę danych, korzystać ze starszych wersji PHP. To, że aplikacja ma być nastawiona na masówkę nie oznacza, że musi być zacofana. Zgodzę się, że nie można stosować jakiś egzotycznych rozszerzeń - to fakt. Ale nie zgodzę się, że powinno się odejść od rozwiązań, które pomogą aplikacji być ciut wyżej pod kątem jakości i zaawansowania kodu.

Cytat(wlamywacz @ 21.09.2008, 19:26:45 ) *
Poza tym ja ustaliłem wymagania dla aplikacji nie on.

To coś kiepsko ustaliłeś skoro "okazało się że na serwerze roboczym był mysql 4.x.x".

Cytat(wlamywacz @ 21.09.2008, 19:26:45 ) *
To jest jak z gramy np. najnowsza gra nie pójdzie Ci na starym sprzęcie.

Strzeliłeś sobie (wam) samobója. Gry mają charakter typowo masowy, a jakoś nie widzę aby producenci wypuszczali gry, które pójdą na kompach sprzed kilku lat. Wszyscy raczej podążają za najnowszymi rozwiązaniami. Pociąga to za sobą oczywiście wzrost wymagań systemowych, ale niewątpliwą zaletą jest (w przypadku gier) poprawa jakości wyświetlanej grafiki.
Go to the top of the page
+Quote Post
wlamywacz
post 21.09.2008, 18:55:12
Post #48





Grupa: Zarejestrowani
Postów: 535
Pomógł: 27
Dołączył: 3.05.2005

Ostrzeżenie: (20%)
X----


Kilku klientów to jest masówka jak dla mnie. Jeśli piszesz o grach jako poprawa grafiki to w tej aplikacji ma się to do jej serwisowania i rozbudowy. Tworząc nową akcje etc. operującej na tej tabeli nie musisz za każdym razem uwzględniać tego że zmiany tutaj wywołają skutek gdzieś indziej, ten problem rozwiązuje triger i tyle.

P.S. Skoro piszesz o rozwoju że prawie wszyscy, to po cholerę ja mam się cofać ? `Sorry nie używam flesza, lepiej zrobię kombinację norweską na iframe bo ktoś jest tak leniwy że nie chce mu się zainstalować flesza`. I jeszcze, wymagania były podane przed rozpoczęciem pracy więc mnie to rybka.

Ten post edytował wlamywacz 21.09.2008, 18:57:54
Go to the top of the page
+Quote Post
Black-Berry
post 21.09.2008, 18:57:35
Post #49





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


No ale co jeśli większość firm w polsce ma jeszcze mysql'a w wersji 4.0; Co z tego że napisze cos na triggerach jeśli będę musiał co 2 aplikację dostosowywać do potrzeb mysql4 zeby coś zarobic. Wiem że może czasem da się znaleźć lepszego klienta ale nie zawsze jest różowo.


--------------------
Go to the top of the page
+Quote Post
phpion
post 21.09.2008, 19:04:30
Post #50





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(Black-Berry @ 21.09.2008, 19:57:35 ) *
No ale co jeśli większość firm w polsce ma jeszcze mysql'a w wersji 4.0; Co z tego że napisze cos na triggerach jeśli będę musiał co 2 aplikację dostosowywać do potrzeb mysql4 zeby coś zarobic. Wiem że może czasem da się znaleźć lepszego klienta ale nie zawsze jest różowo.

No widzisz, trzeba rozgraniczyć sprawę na 2 osobne podejścia: pisanie PRO winksmiley.jpg oraz pisanie typowo dla kasy bez względu na jakość. Jeśli chodzi o pierwsze to w zasadzie wypowiedziałem swoje zdanie wcześniej. Natomiast jeśli chodzi o drugie - w sumie się zgodzę. Chcąc sprzedać swój produkt należy się dostosować do rynku. Nie oznacza to jednak, że to czego wymaga rynek jest dobre. Z drugiej jednak strony jest to nadal świadome wytwarzanie produktu gorszej jakości.


PS: @wlamywacz - ja już nie rozumiem twojego stanowiska... po której stronie jesteś? biggrin.gif
Go to the top of the page
+Quote Post
Black-Berry
post 21.09.2008, 19:07:18
Post #51





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


Ze wszystkim się zgodzę ale to że nie-tosowanei triggerów znaczy to samo co tworzenie oprogramowania gorszej jakości to jeszcze nikt tutaj nie udowodnił. Nawet się nikt nie starał.


--------------------
Go to the top of the page
+Quote Post
phpion
post 21.09.2008, 19:14:10
Post #52





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




W zasadzie sam to napisałeś:
Cytat(Black-Berry @ 21.09.2008, 12:14:38 ) *
No ale wracając do triggerów... Trudno mi wyobrazić sobie, że mogłyby one być czymś złym. Jeśli mamy np. metodę dodającą wpis do jakiegoś drzewa to powiedzmy że dzieje się to poprzez 20 zapytań. Jeśli jednak napiszemy sobie triggera który wykona to jednym zapytanie to chyba będzie szybciej. Jak już tutaj ktoś pisał wczesniej najgorsze są czasy oczekiwań. Więc im mniej zapytań tym lepiej. Nie chodzi o ich złożoność ale o ilość.

Coprawda nieco się tu zapędziłeś przy tej eliminacji zapytań ale przesłanie postu pozostaje jasne i klarowne: triggery są ok smile.gif Jeżeli coś sprawia, że aplikacja jest lepsza (a przynajmniej szybsza więc i lepsza) to rezygnowanie z tego czegoś to pogorszenie jakości aplikacji. Przynajmniej ja to tak odbieram.

// Edit:
Bardzo ciekawa dyskusja powstała smile.gif

Ten post edytował phpion 21.09.2008, 19:16:34
Go to the top of the page
+Quote Post
Black-Berry
post 21.09.2008, 19:17:13
Post #53





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


W zasadzie rzuciłem tylko tezę, nie starałem się nic udowadniać ale jeśli wszyscy się z tym zgadzają to chyba należy uznać dyskusję za zakończonąsmile.gif


--------------------
Go to the top of the page
+Quote Post
phpion
post 21.09.2008, 19:20:47
Post #54





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Hehe tylko, że tematem dyskusji nie było czy triggery są ok tylko "Jak dużo robi wam baza". Więc wracając do tematu i podsumowując moje zdanie: u mnie baza robi tyle ile może i tyle na ile pozwala mi moja wiedza z zakresu programowania PL/SQL (która jest w sumie niewielka).

// Edit:
Swoją drogą: ciekawe rozszerzenie do PostgreSQL pozwalające pisać procedury w języku PHP:
https://projects.commandprompt.com/public/p...i/Documentation

Ten post edytował phpion 21.09.2008, 19:24:45
Go to the top of the page
+Quote Post
Black-Berry
post 21.09.2008, 19:25:57
Post #55





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


Ja muszę się zgodzić z phppion'em. U mnie baza robi najmniej ile się da bo umiem jeszcze mniej PL/SQL i szczerze powiedziawszy... coraz bardziej mnie to denerwuje i coraz bardziej się w tym wszystkim gubię sadsmiley02.gif Nie da się oddzielić logiki biznesowej od bazy danych a skoro tak to może niech baza danych zajmuje się nią w całości.

Ten post edytował Black-Berry 21.09.2008, 19:27:37


--------------------
Go to the top of the page
+Quote Post
wlamywacz
post 21.09.2008, 19:29:39
Post #56





Grupa: Zarejestrowani
Postów: 535
Pomógł: 27
Dołączył: 3.05.2005

Ostrzeżenie: (20%)
X----


Wszystko ma swoje plusy i minusy. Aktualnie nie używam trigerów w trosce o klienta, własny spokój (dzwonienie 8 razy dziennie bo nie działa) i renomę.
Go to the top of the page
+Quote Post

3 Stron V   1 2 3 >
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 13:15