[ Ivan_988 @ 16.10.2012. 10:57 ] @
Pozdrav svima, izvinjavam se ako već postoji slična tema, nisam uspeo da je nađem.

Imam jedno pitanje. Da li je bolje koristiti bazu podataka ili file_write() funkciju kada trebam da sačuvam neki mali podatak?
Radi se o jednom integeru po stranici sajta.
[ plus_minus @ 16.10.2012. 11:08 ] @
Code (php):


Ako hoćeš da kreiraš i pišeš fajlove, koristi tu gore funkciju.

Inače, za jako male ali bitne podatke, najbolje je koristiti sesije..

Nema potrebe vršiti konekciju na bazu zbog jednog integera.

A možda je čuvanje integera ( jednog integera? ) najbolje čuvati u kolačiću.. » setcookie()
[ Ivan_988 @ 16.10.2012. 11:37 ] @
Možda neće biti samo jedan integer, ali će u svakom slučaju biti malo za bazu podataka.

Hvala puno, pomoći će mi ova funkcija.
[ agvozden @ 17.10.2012. 10:16 ] @
Sa druge strane, nije bitno kolika je velicina toga sto upisujes, vec frekvencija upisa.
Ukoliko ce vise njih pristupiti stranici u isto vreme i spi pokusaju da upisu na disk doci ce do konflikta. To se mora resavati zakljucavanjem datoteke, u tom slucaju bolja ti je varijanta da to ide kroz neku bazu, a za mala stvari mozes da koristis i sqlite...
[ plus_minus @ 17.10.2012. 17:35 ] @
Citat:
Ukoliko ce vise njih pristupiti stranici u isto vreme i spi pokusaju da upisu na disk doci ce do konflikta.


Code (php):


file_put_contents( $filename, $data, LOCK_EX);

 


FLag LOCK_EX služi baš za to. Upis se ne izvršava dokle god prethodni upis nije završen.
[ agvozden @ 18.10.2012. 10:48 ] @
^Jašta, ali tada nema ni čitanja...

Pravio sam nekada neke brojače, pa kada se stvar proširila mnogo je problema bilo sa upisivanjem u fajlove. O maltretiranju diska da i ne govorim. Sa bazama nije bilo takvih problema.
[ plus_minus @ 18.10.2012. 17:59 ] @
Hehe.. pa valjda je logično da ćeš prvo upisati nove podatke u temp fajl. Zatim unlink real one i na kraju rename(tempFileName, realFileName) .. tako nekako. Onda ima i čitanja i pisanja kad god treba.
file_put_contents ima udarac na performanse kada se radi o jako velikim fajlovima, oko ili preko 1gb. Ako ni tada baza nije dobrodošla, pribegava se upisu podataka u fajlove sa streamovanjem.