[LUGOS-PROG] Mailing - PHP - MySQL
Matija Grabnar
matija.grabnar at arnes.si
Thu Oct 25 09:20:33 CEST 2001
mitja.zabukovec at rs-pi.com said:
> while( $row = mysql_fetch_array( $result ) ) {
> if( rojstni_dan( $row["date"] ) ) poslji_mail( $row["mail"] );
Slaba metoda, ki brez veze vlece v PHP vse zapise iz baze. Se posebej
je to slabo, ce imas tabelo indeksirano po datumu rojstva.
Veliko bolje je, ce naredis zadevo v stilu (Pisal bom v Perlu namesto
v PHPju, ampak saj je koda dovolj podobna)
$sth=$dbh->prepare("select * from users where rojstni_dan=CURRENT_DATE");
while (@vrednosti=$sth->fetchrow_array) {
poslji_mail(@vrednosti);
}
Na ta nacin se primerjanje datumov v najslabsem primeru odvija v kompilirani
C kodi, ce je DB streznik na drugi masini tudi z veliko manj prometa, ce je
pa tabela indeksirana po datumu rojstva pa tudi z veliko manj praskanja po
disku.
Seveda je to bolj ali manj vseeno, ce imas v bazi 50 zapisov, ampak splaca
se navaditi, da se take zadeve pise pazljivo, ker to pride prav, ko tabela
naraste na stotine tisocev zapisov.
More information about the lugos-prog
mailing list