@informer
"Meni je jednom davno neko rekao: "Sve moze ali nikad nemoj da dozvolis da djubre udje u bazu.""
Meni su na svakom PHP poslu rekli: "Ono sto si ucio na casovima o bazama podataka to ovde ne vazi"
Da krenem od tabele sa nekoliko hiljada kolona. To je ozbiljna greska u MySQL kada se prave sajtovi. VRLO OZBILJNA GRESKA. Cim neki PHP programer napravi takvu tabelu on ne moze da dobije posao.
To je ovde najlosija praksa iz razloga sto ce load stranice da bude 10 umesto 0.5 sekundi. To nekoj radnici na salteru u banci ne znaci nista. Ona tamo sedi 8-9 sati.
Jednom sajtu znaci puno jer ce ga google baciti na desetu stranicu a to automatski znaci 99% manje poseta i 99% manje para. I tih 1% korisnika koji dodju na sajt posle 5 sekundi ce da odu na drugi.
Pitas u cemu je razlika. Razlika je da ce ti neki sajt zaradjivati ili nece. Razlika je ogromna.
U MySQL tabele sa stotinama miliona redova takodje vrlo losa praksa u MySQL. U MySQL tabela sa preko 10 miliona redova se razbija na jos tabela a cesto i na vise baza.
Mnogi podaci na webu se kesiraju dok u bankama ne a nad kesiranim podacima mysql ne moze da radi vec mora uvek da pristupa podacima u bazi.
Podaci se kesiraju jer je opet problem brzina a brzina je novac. Sve se zrtvuje zarad brzine sajta a baza podataka je uvek usko grlo.
Raditti validaciju JMBG broja u MySQL za neki websajt je suludo jer to kosta brzine a samim tim poseta korisnika i novca. Brzina sajta je direktno vezana za novac. Mozes sve super da imas uradjeno na sajtu ali ako je spor on nece donositi profit.
Zato sam i rekao da sam siguran da se ne bavis php i mysql programiranjem vec desktop i bio sam upravu.
To sto je u banci najbolja praksa na webu je najlosija.
Mi imamo servere ciji zakup pojedinacno mesecno kosta vise od 10.000$.. Ne secam se tacno kakve ali neke lude masine. Citav sajt nam je razdvojen. Npr registraciju korisnika vrsi jedan server. Unos oglasa vrsi drugi server, poruke treci.
Cak su nam neke tabele podeljene na vise servera pa imamo "workere" koji citaju odredjeni SQL sa svih tih servera pa spajamo podatke u kodu. I mi se zaglavljujemo na MySQL. Za neke stvari koristimo baze koje su same tabele bez relacija kao NoSQL ili Mongo.
Tabela za password nam ima dve kolone user_id, password, za email, user_id i email. Na glavu user tabelu ne smes da nakacis nikakvu kolonu. Pogovo tipa text koja dosta usporova.
Kada bi neko stavio na user tabelu prodecuru koja proverava JMBG usporio bi sajt i dobio bi otkaz. Malo karikiram ali u firmi ima vise PHP programera nego komplet radnika u banci.
Sajt nam se ucitava za 1,5 sekundi i trudimo se da se ucita ispod jedne sekunde.
A onda kada krene marketing tim da osvaja novo trziste pa skoci load servera sa 10 na 90% a ti vidis da je neko stavio takvu validaciju i nije kesirao podatke. Ubijes se.
Druga stvar... To sto ti radis sa PHP to je zato sto nisi PHP programer vec to radis iz hobija ali ja bih voleo da mi neko kaze u prvih 1000 PHP sajtova u Srbiji da je jedan uradjen tako.
Pricate kao da svi tako rade a ja tvrdim da niko u PHP ne radi tako. Mozda .NET programer koji se igra malo sa PHP a vidim da ima i .NET programera koji ne bi tako radili. Siguran sam da nema PHP programera koji bi tako radio.
I sami ste priznali da niste PHP programeri.
[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]