Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> optymalizacja wyników zapytania
karis
post
Post #1





Grupa: Zarejestrowani
Postów: 217
Pomógł: 2
Dołączył: 23.12.2008

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


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

Go to the top of the page
+Quote Post
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Zmierz microtime

Zastosuj paginację.
Go to the top of the page
+Quote Post
karis
post
Post #3





Grupa: Zarejestrowani
Postów: 217
Pomógł: 2
Dołączył: 23.12.2008

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


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?
Go to the top of the page
+Quote Post
Crozin
post
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Zacznijmy może od tego, że oba podane kody robią coś zupełnie innego...
Go to the top of the page
+Quote Post
flashdev
post
Post #5





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

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


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.
Go to the top of the page
+Quote Post
Fifi209
post
Post #6





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


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 (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/haha.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.09.2025 - 11:50