Pogledajte određenu poruku
Staro 18. 10. 2005.   #14
ivanhoe
Ivan Dilber
Sir Write-a-Lot
 
Avatar ivanhoe
 
Datum učlanjenja: 18.10.2005
Lokacija: Bgd
Poruke: 5.320
Hvala: 104
2.344 "Hvala" u 583 poruka
ivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svima
Pošaljite poruku preko Skype™ za ivanhoe
Default

eh, da ne budu svi saveti teoretske prirode (a i nov sam na forumu pa moram da se pravim pametan ) evo par saveta koji su meni mnogo znacili:

1. optimizacija koda je realno potrebna u svega 10-tak % koda, pri cemu su ti naravno petlje glavni kandidati...sav ostali trud je cisto trosenje developer sati... zato profilisi blokove koda sa microtime() i vidi sta trosi najvise vremena.. takodje proceni koje ce skripte da nose najveci load pa se samo oko njih trudi, one koje se pozivaju jednom u 3 dana su ti potpuno nebitne u ovom scenariju... oko optimizacije php koda ne treba biti previse paranoican jer realno najvece vreme ti odlazi na ucitavanje i kompajliranje skripte, a tu nema pomoci (osim Ilijinog saveta sa pocetka threada)

2. Konekcija na bazu je nasjporiji deo rada sa bazom, zato koristi samo jednu bazu i perzistentne konekcije(samo pazi da tako svako apache dete dobije po jednu stalnu konekciju koju nikad ne prekida, sto moze da bude problematicno ako je broj konekcija limitiran ili ima previse apache procesa). Takodje procitaj vrlo pazljivo savete za optimizaciju iz mysql helpa, odlicni su. Ovo se u praxi pre svega odnosi na upotrebu tabela sa fixnim duzinama polja kad god je moguce, i na pravilno indexiranje tabela. Tabele koje se najvise koriste (recimo ako sessione cuvas u bazi) obavezno pravi bez varchar i text polja, znaci strogo tipovi fixne duzine, jer tako radi znatno brze. Kod indexiranja treba obratiti paznju na indexe po vise polja i kako ih koristi mysql, tako moze dosta da se dobije na brzini. Takodje treba paziti da svaki index usporava insertovanje u bazu, znaci tamo gde se puno insertuje gledaj da ti treba malo indexa. I jos stvar koja mi nikad nije bila jasna, ali je provereno tacna, treba voditi racuna o redosledu uslova iza where, jer nije svejedno kojim su redosledom dati zavisno vec od indexa koji su na raspolaganju. Mysql ima foru da pogledas koje indexe baza koristi za koji upit pa uvek proveri da li radi onako kako si ti zamislio.

3. par stvari oko mysql-a koje mislim da ne pisu u helpu: mysql se ne snalazi najbolje sa velikim tabelama, znaci deli tabele na manje kad god to ima smisla, bice ti mnogo brze. Takodje ne ume bas najbolje da radi sa joinovima, pogotovo kad su velike tabele u pitanju, cesto je mnogo brze uraditi 2 odovojena upita pa ih spojiti iz php-a (treba izmeriti vreme pa videti naravno).

eto ovo je sve sto mi momentalno pade na pamet, a i mislim da je sasvim dovoljno za vrlo pristojan rad.. mada u principu vazi savet koji je vec ponovljen vise puta: Pisi kod lak za odrzavanje, pa tek zatim optimizuj i to posmatrajuci sajt u realnom radu, pa ako snimis da ima gusenja popravljaj samo te skripte koje prave problem...

Poslednja izmena od ivanhoe : 18. 10. 2005. u 22:32.
ivanhoe je offline   Odgovorite uz citat