Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ado vs. mysql_*
Forum PHP.pl > Forum > Bazy danych
pbanasiak
korzystam z mysql i raczej nie planuje zmiany bazy.
i teraz takie pytanie
czy jeżeli będę korzystał z ado zamiast mysql_* to mocno stracę na wydajności?
czy może się mylę i będzie wydajniej?
jeżeli jednak ado jest mniej wydajne to czy dużo mniej? mam w takim przypadku dylemat czy lepiej mieć większą wydajność korzystając z mysql_* czy lepiej możliwość w każdym momencie zmiany bazy?
Sh4dow
czysto teoretycznie wykonywanie zapytan poprzez takie skrypty jak ADODB zawsze bedzie wolniejsze. Ale takie skrypty moga posiadac rozne mechanizmy cache'ujace ktore w niektorych przypadkach zwieksza wydajnosc. Sa takie metody pomocnicze ktore niektore zapytania potrafia generowac za ciebie. Takze bardzo ciekawe rozwiazanie i czesto pomocne.

W php 5.1 jest juz cos takiego jak PDO proponuje poczytac jesli interesuje http://pl2.php.net/pdo
Jabol
AdoDB ma jezscze ten plus, że jest systemem wysokopoziomowym. Więc jako interfejs wysokopoziomowy ma nie tylko zaimplementowane funkcje obsługi bazy danych, ale również przetważania wyników i temu podobne. Te dodatkowe możliwości uważam osobiście za wielki plus adodb i chyba jego największą wartość, gdyż inaczej musiałbym samemu je implementowac.
NuLL
Coś w tym jest. Ja sądze podobnie jak przemówca - ja nie korzystam z ADO czy czegoś w tym stylu ale własnie funkcje typu
  1. <?php
  2.  
  3. $db->insert('tabela',array('pole1'=>'wartosc','pole2'=>'wartosc2');
  4.  
  5. ?>

Podobne funkcje mam napisane dla UPDATE,COUNT itp -dzięki nim praca na kodem jest szybsza a sam kod dużo krótszy.
SongoQ
Cytat
czy jeżeli będę korzystał z ado zamiast mysql_* to mocno stracę na wydajności?

Na takie rzeczy raczej nie powinno sie patrzec, bo czas naprawde nie jest tu bardzo rozniacy sie. Problem zaczyna sie wtedy kiedy zapytania sa nieoptymalne i zwracanie z bazy trwa kilka jak nie kilkadziesiat sekund.
sobstel
Cytat(SongoQ @ 2005-12-06 21:42:21)
Cytat
czy jeżeli będę korzystał z ado zamiast mysql_* to mocno stracę na wydajności?

Na takie rzeczy raczej nie powinno sie patrzec, bo czas naprawde nie jest tu bardzo rozniacy sie.

tu bym polemizował, m.in. masy kilobajtów dolaczane wraz z biblioteka maja znaczenie. co prawda jak na serwerze dzialaja jakies optymalizatory to ma sie to lepiej. pewnym rozwiazaniem jest uzycie adodb lite, ale i tak przewaznie takei biblioteki pozostana wolniejsze niz zwykle mysql_*.

dla potwierdzenia moich słów np. wedlug testow na http://adodblite.sourceforge.net/benchmark.php adodb jest ponad 5-krotnie wolniejsze (z akceleratorem "tylko" prawie 2-krotnie). czesciowo powyzsze testy potwierdzaja takze te http://phplens.com/lens/adodb/ (jak widac z akceleratorem sytuacja jest do przyjecia, chociaz gdy nie chcemy wykrozystac jakichs szczegolnie specjalnych cech adodb, to nie widze sensu).
SongoQ
Cytat
tu bym polemizował, m.in. masy kilobajtów dolaczane wraz z biblioteka maja znaczenie. co prawda jak na serwerze dzialaja jakies optymalizatory to ma sie to lepiej. pewnym rozwiazaniem jest uzycie adodb lite, ale i tak przewaznie takei biblioteki pozostana wolniejsze niz zwykle mysql_*

Z tym sie zgadzam smile.gif Chodzilo mi bardziej o to ze stosowanie takiej biblioteki przy zapytaniu ktore baza przetwaza np 0.2 s jest niczym.
pbanasiak
Cytat
Chodzilo mi bardziej o to ze stosowanie takiej biblioteki przy zapytaniu ktore baza przetwaza np 0.2 s jest niczym
w przypadku kilkudziesięcu zapytań na sekunde to 5 krotna strata wydajności nie jest niczym winksmiley.jpg

zastanawiam się nad PDO, tylko martwi mnie, że nie jest to jeszcze wersja finalna
SongoQ
Cytat
w przypadku kilkudziesięcu zapytań na sekunde to 5 krotna strata wydajności nie jest niczym

Teoretycznie powinno byc jak najmniej zapytan do bazy. Ale wszystko zalezy od bazy i umiejetnosci pisania zapytan.

Cytat
zastanawiam się nad PDO, tylko martwi mnie, że nie jest to jeszcze wersja finalna

Znasz moze firmy, ktore maja PDO w swojej ofercie?
pbanasiak
Cytat
Teoretycznie powinno byc jak najmniej zapytan do bazy. Ale wszystko zalezy od bazy i umiejetnosci pisania zapytan.
w tym wypadku jeden user = jedno zapytanie - to taki mały projekt dla pracowników jednej firmy chodzący na ich serwerze firmowym

Cytat
Znasz moze firmy, ktore maja PDO w swojej ofercie?

progreso.pl
na dniach ma być php 5.1
ale i tak możesz robić własne php.ini więc chyba nie powinno być problemu jak sobie samemu włączysz obsługę pdo

jak chcesz to dostaniesz 5% zniżki -> pw
SongoQ
Cytat
w tym wypadku jeden user = jedno zapytanie - to taki mały projekt dla pracowników jednej firmy chodzący na ich serwerze firmowym

Nie wszystko zamkniesz w jedno zapytanie bo to logicznie nie mozliwe. No chyba ze mowimy o PG czy ORACLE w ktorym sobie napiszesz funkcje ktora np bedzie CI zwracac jednym zapytaniem wszystko co CI jest potrzebne w danym zadaniu. Ale szczerze takiego czegos nie widzialem, no ale zawsze mozna sprobowac.
pbanasiak
mówie o mysql, a skrypt ma po prostu zwracać 1 lub 0 w zależności od loginu pracownika, więc nie potrzeba tutaj kilku zapytań:)
SongoQ
Cytat
mówie o mysql, a skrypt ma po prostu zwracać 1 lub 0 w zależności od loginu pracownika, więc nie potrzeba tutaj kilku zapytań


To co w calym serwisie masz tylko to zapytanie questionmark.gif?
sobstel
Cytat(SongoQ @ 2005-12-08 21:53:05)
Cytat
mówie o mysql, a skrypt ma po prostu zwracać 1 lub 0 w zależności od loginu pracownika, więc nie potrzeba tutaj kilku zapytań


To co w calym serwisie masz tylko to zapytanie questionmark.gif?

w takiej sytuacji to nawet nie ma co sie za bardzo zastanawiac i wykonywac jedną natywną funkcją mysql_query. imho w takiej sytuacji uzywanie adodb troche nie ma sensu.
pbanasiak
może po kolei
w pewnej firmie jest serwer z mysql
na komputerach pracowników jest soft napisany w c korzystający z tej bazy - niepytajcie dlaczego bo nie ja to robiłem
właściciel odkrył taką rzecz jak google, a potem taką rzecz jak php i zażyczył sobie przepisania wszytskiego z c na php, tak aby pracownicy mogli all robić za pomocą przeglądarki. teraz jest to jedno zapytanie, które zwraca 1 lub 0 - właściciel się uparł, że ma być od razu, a na przepisanie wszytskiego na php mam trochę czasu.
docelowo ma to uciągnąć do 500-1000 zapytań na sekundę. no i mam problem czy przepisywać to na mysql, na ado czy na pdo. chociaż skłaniam się ku pdo
SongoQ
Cytat
docelowo ma to uciągnąć do 500-1000 zapytań na sekundę

Jesli jest to tylko dla firmy to podejrzewam ze to pewne obliczenia i wszystko wrzucane do bazy. Jesli tak to mozna by pokombinowac i zrobic wrzucanie w paczkach do bazy, aby zmiejszyc ilosc polaczen z baza, no chyba ze mowiles o ilosci odpytan bazy przez kilku userow.
pbanasiak
problem w tym, że nie wiem jakie zapytania idą do bazy bo szef był tak mądry, że nie zostawił kodu źródłowego w c i zapytania muszę wymyślac sam, więc nie wiem ile z tego wyjdzie, bo 500-1000 na sekunde jest teraz

jeszcze jedno czy bindparam zabezpiecza przed włamaniami - chodzi mi, czy ta funkcja sama doda ukośniki, czy muszę to robić sam?
sobstel
Cytat(pbanasiak @ 2005-12-15 20:57:20)
czy bindparam zabezpiecza przed włamaniami - chodzi mi, czy ta funkcja sama doda ukośniki, czy muszę to robić sam?

nie musisz sie obawiac o ukosniki wtedy.

p.s. zaczynasz zadawac pytania, na ktore odpowiedz mozna bardzo latwo znalezc w manualu. nastepnym razem prosze cie zajrzyj wlasnie tam w pierwszej kolejnosci.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.