Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> 2 zapytania, ktore szybsze?
wojto
post
Post #1





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 29.06.2003
Skąd: Warszawa

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


Mam dwa pytania:
pierwsze: chce pobrac ilosc rekordow z tabeli i jakie zapytanie do mysql'a jest szybsze:
[sql:1:b80023d511]
$row=mysql_fetch_array(mysql_query("SELECT COUNT(*) AS qnt FROM tabela"));
$ile=$row[qnt];
[/sql:1:b80023d511]
czy:
[sql:1:b80023d511]
$ile=mysql_num_rows(mysql_query("SELECT id FROM tabela"));
[/sql:1:b80023d511]
czesto sie nad tym zastanawiam, sam czesciej uzywam tego pierwszego, uwazam, ze tam tylko liczy ile jest wierszy, a nastepnie zamienia wyniki na tablice. A w drugim przypadku: pobiera wszystkie id i liczy ich ilosc, ale czy po pobraniu id sa one przechowywane w pamieci, bo jak tak, to druga wersja potrzebuje wiecej pamieci.

Drugie pytanie:
jak lepiej zrobic wysylanie subskrypcji:
czy poprzez:
header a w nim BCC: adres1@cos.pl, adres2@cos.pl, ... i tak wiecej adresow, czy przez petle i uzywanie funkcji mail dla kazdego adresu email.
ps. czesciej chyba jest wykorzystywany ten drugi.
Z góry dziekuje za odpowiedz.


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





Grupa: Zarejestrowani
Postów: 223
Pomógł: 0
Dołączył: 22.03.2003

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


Cytat
[sql:1:1cbba8a4d7]
$row=mysql_fetch_array(mysql_query("SELECT COUNT(*) AS qnt FROM tabela"));
$ile=$row[qnt];
[/sql:1:1cbba8a4d7]


Tutaj: 1 row in set (0.00 sec)

Cytat
czy:
[sql:1:1cbba8a4d7]
$ile=mysql_num_rows(mysql_query("SELECT id FROM tabela"));
[/sql:1:1cbba8a4d7]


Tutaj: 621 rows in set (0.19 sec)


Czyli pierwsze jest lepsze (szybsze);


Cytat
jak lepiej zrobic wysylanie subskrypcji:
czy poprzez:
header a w nim BCC: adres1@cos.pl, adres2@cos.pl, ... i tak wiecej adresow, czy przez petle i uzywanie funkcji mail dla kazdego adresu email.
ps. czesciej chyba jest wykorzystywany ten drugi.
Z góry dziekuje za odpowiedz.


Polecam drugi sposób. Może to trwać dłużej przy większej liczbie emaili, ale jest "prywatniejsze". (gość dostaje email tylko ze swoim adresem, a nie kilku osób dodatkowo).
Go to the top of the page
+Quote Post
wojto
post
Post #3





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 29.06.2003
Skąd: Warszawa

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


Cytat
Polecam drugi sposób. Może to trwać dłużej przy większej liczbie emaili, ale jest "prywatniejsze". (gość dostaje email tylko ze swoim adresem, a nie kilku osób dodatkowo).

Tylko ze naglowek BCC (jesli dobrze pamietam, czy to ten) powoduje, ze jest widoczny tylko jeden adres, tej osoby do kogo wysylamy emaila, pozostale sa nie widoczne. Zatem w obu przypadkach jest widoczny tylko jeden adres, stad, chyba pierwszy sposob jest lepszy, bo jest szybszy.


--------------------
Go to the top of the page
+Quote Post
uboottd
post
Post #4





Grupa: Zarejestrowani
Postów: 384
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Chorzow

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


Co do liczenia: pierwszy sposob jest bezkonkurencyjny. MySQl dla takiego zapytania nawet nie otwiera tej tabeli tylko tak podstawowa informacje ma zapisana na boku. No i oczywiscie w ogole nie musi przesylac zawartosci tej tabeli do klienta, bo przesyla dokladnie jeden wiersz z wynikiem.
Go to the top of the page
+Quote Post
Piotr Mederak
post
Post #5





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 28.07.2003
Skąd: Brwinów koło Warszawy

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


Jesli chodzi o licznik to zdecydowanie pierwszy sposob.

Polecam rowniez pojscie krok dalej i zastapienie:

[php:1:f5e6cd2e05]$row=mysql_fetch_array(mysql_query("SELECT COUNT(*) AS qnt
FROM tabela"));
$ile=$row[qnt];[/php:1:f5e6cd2e05]

kodem:

[php:1:f5e6cd2e05]$ile = mysql_result(mysql_query("SELECT COUNT(*) AS qnt FROM tabela;"), 0);[/php:1:f5e6cd2e05]

W ten sposob nie zmuszasz php do tworzenia zupelnie zbednej tablicy a wynik zapytania SQL wrzucasz odrazu do zmiennej.


--------------------
www.humor-na-gg.w.pl
Go to the top of the page
+Quote Post

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 Aktualny czas: 19.08.2025 - 13:17