Pentru inceput voi incepe eu cu niste exemple.

1. Dupa cum stiti, echo e mai rapid ca print, si 2 exemple de echo:
echo 'id: ',$id,' , valoare: ',$valoare;
e mai rapid ca
echo 'id: '.$id.' , valoare: '.$valoare;
si folosesc ' , si nu " pentru ca si asta se presupune a fi o optimizare, cautandu-se dupa variabile intre " " si nu intre ' '.
dar $var=""; e mai rapid ca $var='';
mysql_fetch_array vs mysql_fetch_assoc vs mysql_fetch_row
mysql_fetch_array e mysql_fetch_assoc+mysql_fetch_row, deci dublu de date pe care le ceri din baza de date:
Array
(
[0] => 1
[id] => 1
[1] => etc
[valoare] => etc
)
mysql_fetch_assoc returneaza un array unde fiecare key este numele campului extras dintr-un tabel anume.
Array
(
[id] => 1
[valoare] => etc
)
mysql_fetch_row returneaza un array unde key-urile sunt numerice, si corespund fiecarui tabel extras in functie de selectarea informatiilor din baza de date.
'SELECT id,valoare FROM tabel'
Array
(
[0] => 1
[1] => etc
)
dintre toate acestea eu folosesc fetch_row, datoritata informatii mai putine cerute de la baza de date.
si cand extrageti ceva din baza de date mereu indicatii in query ce campuri doriti, deci
'SELECT id,valoare FROM tabel'
e mai rapid ca
'SELECT * FROM tabel'
++$i e mai rapid ca $i++ cu ~10%
while vs for
$i=0;
while($i<10000) {
echo $i.' ';
++$i;
}
for($i=0;$i<10000;++$i) {
echo $i.' ';
}
cu ajutorul functii memory_get_usage() putem vedem foarte clar ca while() consuma mai putine resurse ca for(), si daca punem la inceput paginii de testat $start=microtime(); si la urma $stop=microtime() echo ($stop-$start); vedem de asemenea iar ca while e mai rapid ca for(). demn cateva secunde,dar conteaza.
selectarea din mai multe tabele se poate face cu mai multe tipuri de JOIN-uri: INNER JOIN, LEFT JOIN, RIGHT JOIN, NATURAL JOIN, CROSS JOIN,etc..
pt ca LEFT JOIN mi s`a parut cea mai rapida, va voi da un exemplu de query cu LEFT JOIN:
'SELECT tabel1.id,tabel2.valoare FROM tabel1 LEFT JOIN tabel2 ON (tabel1.id=tabel2=id)'
include,include_once,require si require_once
diferenta dintre include si require e ca include daca nu gaseste fisierul respetiv merge in continuare pe cand require daca nu gaseste fisierul da o eroare fatala. daca puneti include_once sau require_once cu acelasi fisier de inclus de mai multe ori il va include doar o singura data,dar consuma ceva resurse, deci include/require merg mai bine ca include_once/require_once. cel putin eu folosesc require si se simte diferenta cand umbli cu multe fisiere de inclus. si introduceti toata calea spre fisier ca sa nu mai stea OS-ul sa descifreze caiile.
variabilele statice pot fi de 2 ori mai rapide ca cele globale,deci incercati sa nu folositi global decat numai cand nu aveti incotro.
dati unset() la array`urile de care nu aveti nevoie.
si ar mai fi,dar e tarziu. asa ca o voi lasa pe alta data, sau poate vor scrie si altii ceva optimizari ale codului PHP.
