Sõltub suuresti olemasolevast koodist. Kuid üldiselt:
Kohe kõigest pikemalt
1. Kasutajafunktsioonidest on pikemalt juttu eraldi lehel. Nagu öeldud tuleb jälgida, et loodavad funktsioonid ei kordaks PHP-s juba olemasolevaid funktsioone.
2. Objektideks on tavaliselt eraldi failidesse paigutatud sarnased funktsioonid, mis kasutavad omi muutujaid.
3. Korduseid saab luhendada kasutades nt foreach keelekonstruktsiooni ning massiivi. Selleasemel, et uhtejarge lukkida 17 insert paringut voib need 17 id-d lisada massiivi ning selle foreach tsuklis labijalutada ning iga id juures sooritada lisamiseks paring. Kumb jatab parema mulje?
a)
mysql_query("update tabel set values vali1='a' where id=1"); mysql_query("update tabel set values vali1='b' where id=2"); mysql_query("update tabel set values vali1='c' where id=3"); mysql_query("update tabel set values vali1='d' where id=4"); mysql_query("update tabel set values vali1='e' where id=5");
versus b)
$asjad = array(1=>'a','b','c','d','e'); foreach($asjad as $id=>$vaartus) mysql_query('update tabel set values vali1="'.mysql_real_escape_string($vaartus).'" where id='.$id);
Andmeedastuse vähendamiseks võib osa staatilistest failidest tõsta kuhugi teise serverisse ja sealt saab siis (i)framedega lehe põhisaiti haakida.
Võimalus on ka kasutada kasutajale saadetava lehe gzippimist, mille brauser jooksult lahtipakib.
Seda saab teha lisades faili algusesse:
ob_start("ob_gzhandler");
Cachemine kujutab endast ajutiste html failide tekitamist, mida kasutatakse selle asemel et igakord sooritada andmebaasi paringuid - see voib oluliselt kiirendada lehe tood. Vajalike klasse leiab peari lehelt, http://pear.php.net/packages.php?catpid=3&catname=Caching olemas ka memcache nimeline extension mis voimaldab koormust mitme serveri vahel jagada.
Andmebaaside juures tuleb jälgida, et andmed ei oleks dubleeritud ning kasutataks õigeid andmetüüpe. Kasutajanime pole mõtekas lisada TEXT tüüpi välja vaid VARCHAR pikkusega nt 15 märki.
Andmebaaside juures tuleks kindlasti uurida, et võimaluse korral saaks kasutada indekseid. Indeks on nagu kartoteek, mis lihtsustab andmete leidmist. See teeb andmebaasi küll väheke suuremaks, kuid kiirendab oluliselt päringuid.
Nt MySQLis on mitut tüüpi indekseid, vaikimisi on indekseeritud PRIMARY KEY väljad, lisaks on olemas UNIQUE, INDEX ning FULLTEXT indeksid. FULLTEXT võimaldab otsingus kasutada teatud metamärke nagu _*? jms. Indekseerida tuleks sellised väljad, mida sagedasti kasutatakse nt where päringus.
Olgu nt tabel kasutajad:
SELECT * FROM kasutajad WHERE kasutajanimi="keegi"
siis sellise päringu kiirendamiseks aitab, kui indekseerida kasutajanime väli ning otsida selle järgi:
CREATE INDEX kasutaja_idx ON kasutajad (kasutajanimi)
PHP-l ja ka Mysql-il on suurepärased manuaalid - kasutades uusi või miks mitte ka vanemaid funktsioone ja võimalusi võib tutvuda käsiraamatu vastavate lehekülgede ning kommentaaridega: php.net/manual ja http://dev.mysql.com/doc/
NB! PHP käsiraamatu kohta veel selline vihje, et kiireks abiinfo leidmiseks võib kasutada aadressi php.net/funktsiooni_nimi, kus funktsiooninimeks on vastava funktsiooni nimetus, nt fclose või parse_ini_file.