Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: optymalizacja wyników zapytania
Forum PHP.pl > Forum > PHP
karis
czesc
mam pytanie co jest bardziej wydajnie:

to:

  1. $wynik = mysql_fetch_array($zapytanie);
  2. $licz = count($wynik);
  3. for($i=0; $i<$licz; $i++)
  4. {
  5. $tablica[] = $wynik;
  6. }
  7.  
  8. return $tablica;


czy

  1. while($wynik = mysql_fetch_array($zapytanie))
  2. {
  3. $tablica[] = $wynik;
  4. }
  5.  
  6. return $tablica;



i jak można jeszcze zoptymalizować wyniki zapytan, tak zeby przy dużej liczbie użytkowników nie sypnęło się coś.

dodam, że w swoim projekcie mam dużo zapytań mysql

wookieb
Zmierz microtime

Zastosuj paginację.
karis
z tym microtime to rozumiem, że mam wstawić na początku wywołania zapytania oraz na końcu i potem przyrost policzyć?


paginacje stosuję

coś jeszcze?
Crozin
Zacznijmy może od tego, że oba podane kody robią coś zupełnie innego...
flashdev
Cytat(karis @ 8.08.2010, 12:38:56 ) *
czesc
mam pytanie co jest bardziej wydajnie:[...]
[/php]


To są nieznaczne różnice. Czasy nieporównywalnie małe w stosunku np. do dostępu do bazy danych. Myslę, że nie ma sensu sobie głowy takimi wątpliwościami zawracać.


Cytat(karis @ 8.08.2010, 12:38:56 ) *
z tym microtime to rozumiem, że mam wstawić na początku wywołania zapytania oraz na końcu i potem przyrost policzyć?


Przy pisaniu takich benchmarków możesz jeszcze dany kod wrzucić do pętli i wykonać N razy, żeby nie okazało się, że przy każdym uruchomieniu zmierzony czas jest na poziomie wartości niepewności pomiaru.
Fifi209
Cytat(karis @ 8.08.2010, 13:43:47 ) *
z tym microtime to rozumiem, że mam wstawić na początku wywołania zapytania oraz na końcu i potem przyrost policzyć?

Oj tak yahoo.gif , najlepiej wrzuć w dużą pętlę, policzyć czasy i na końcu czas średni czy medianę jak kto woli

Cytat(karis @ 8.08.2010, 13:43:47 ) *
coś jeszcze?

Jeżeli będziesz przeszukiwał bazę to polecam założyć indeksy.

Cytat(Crozin @ 8.08.2010, 13:49:22 ) *
Zacznijmy może od tego, że oba podane kody robią coś zupełnie innego...

Cenne spostrzeżenie haha.gif
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.