Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Może ktoś pomoże zoptymalizować "to coś"?
Forum PHP.pl > Forum > PHP
ApC
Mam coś takiego:



$ostatnio=$time-800;
$byl=$time-30;
$pis=@mysql_num_rows(mysql_query("SELECT * FROM `userzy` WHERE `kiedy_pisal`>$byl"));
$akt=@mysql_num_rows(mysql_query("SELECT * FROM `userzy` WHERE `kiedy`>$ostatnio"));
$zap=@mysql_num_rows(mysql_query("SELECT * FROM `userzy`"));
echo "Pisze: $pis <br> Online: $akt <br> Zarejestrowanych: $zap";



Da się to jakoś zoptymalizować? Mam wiele podobnych zapytań sad.gif
Tubis
Oczywiście że sie da. Wystarczy mysql_numrows zamienic na COUNT(*). Dokladniej sobie poszukaj na tym forum albo w kursach sqla
ApC
Cytat(Tubis @ 1.02.2008, 20:27:34 ) *
Oczywiście że sie da. Wystarczy mysql_numrows zamienic na COUNT(*). Dokladniej sobie poszukaj na tym forum albo w kursach sqla

A moze bylbys taki dobry i pokazal w praktyce? Bo troche nie moge zrozumiec. Nigdy tego nie uzywalem.
em1X
http://dev.mysql.com/doc/refman/5.0/en/select.html

  1. <?php
  2. $przyklad = @mysql_result(mysql_query("SELECT COUNT(*) FROM `userzy` WHERE `kiedy_pisal`>$byl"), 0);
  3.  
  4. print $przyklad;
  5. ?>
ApC
@mysql_result(mysql_query("SELECT COUNT(*) FROM `userzy` WHERE `kiedy_pisal`>$byl"), 0);

jest szybsze od tego

@mysql_num_rows(mysql_query("SELECT * FROM `userzy` WHERE `kiedy_pisal`>$byl"));


Tak mam zrozumiec? Bo zastanawiam się co stosowac smile.gif

I co daje to " ), 0); " ... chodzi o to "0"? A te wszystkie zapytania z pierwszego postu nie mozna wrzucic jakos w jedno czy cos?

?
em1X
Cytat(ApC @ 1.02.2008, 21:12:37 ) *
@mysql_result(mysql_query("SELECT COUNT(*) FROM `userzy` WHERE `kiedy_pisal`>$byl"), 0);

jest szybsze od tego

@mysql_num_rows(mysql_query("SELECT * FROM `userzy` WHERE `kiedy_pisal`>$byl"));
Tak mam zrozumiec? Bo zastanawiam się co stosowac smile.gif


Oczywiście, że powinieneś stosować mój przykład. Postępujesz wbrew wszelkiej logice optymalizacji wyciągając WSZYSTKIE dane, zamiast kazać bazie wyciągnąć tylko tą szukaną ilość.

Cytat(ApC @ 1.02.2008, 21:12:37 ) *
I co daje to " ), 0); " ... chodzi o to "0"?


a może byś do manuala zajrzał ? jak działa funkcja mysql_result" title="Zobacz w manualu PHP" target="_manual
od tego w końcu jest, żeby go czytać zamiast zadawać pytania na forach po co i dlaczego.

Cytat(ApC @ 1.02.2008, 21:12:37 ) *
A te wszystkie zapytania z pierwszego postu nie mozna wrzucic jakos w jedno czy cos?


możesz, tylko po co ? jeżeli już się przy tym upierasz to możesz wszystko połączyć przy pomocy UNION

Kod
select count(*) from ....
union
select count(*) from ...
union
select count(*) from ...
ApC
Dzieki bardzo, naprawde mi sie przydalo smile.gif! I jeszcze czesto wykonuje zapytania:

mysql_query("UPDATE `userzy` SET `cos`='".$cos."', `inne`='".$inne."', `nastepne`='5' WHERE `id`='".$sesja['id']."'");

Czy cos takiego jest optymalne, czy moze uzywac czegos "bardziej" wydajnieszego, co proponujecie?
em1X
to znaczy co chcesz tutaj optymalizować? blinksmiley.gif
ApC
Cytat(em1X @ 1.02.2008, 23:54:07 ) *
to znaczy co chcesz tutaj optymalizować? blinksmiley.gif

Tylko myślałem, że macie jakiś inny sposób smile.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.