Avaleht
uus teema   vasta Tarkvara »  WWW »  kuidas/millega teha cache lehele, kus on sisseloginud kasutajad? märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
SGM
HV kasutaja
SGM

liitunud: 04.12.2005



Autoriseeritud ID-kaardiga

sõnum 04.11.2008 13:20:44 kuidas/millega teha cache lehele, kus on sisseloginud kasutajad? vasta tsitaadiga

Jagatud serveris olen, lehel on palju külastajaid, koormus suur, päringuid palju. Proovisin paari erinevat cache-süsteemi, mis mingiks ajaks lükkavad lehel kuvatava sisu kõik vastavasse faili HTMLiks, mida sealt siis teatud aja jooksul kuvab selle asemel, et teha pidevalt SQL-päringuid. Kõik nagu toimis, kuni tulid sisseloginud kasutajad. Siis läks kõik nende jaoks sassi! Kõik kasutajad hakkasid nägema selle kasutaja infot ja andmeid, kelle lehekülastuse hetkel cache-fail tekitati! icon_eek.gif Ja nii siis pidevalt. Kuidas ja/või mille abil saaks selle cache nii, et see poleks häiritud individuaalsetest kasutajatest? Midagi olen lugenud ka SQL-cache teemast, aga praegu ei kujuta ette, kas see asi parandaks selle vea, et kas tasub edasi uurida. icon_rolleyes.gif
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 1 :: 1 :: 0
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
linnumees
HV kasutaja

liitunud: 15.06.2005




sõnum 04.11.2008 16:32:20 vasta tsitaadiga

SGM kirjutas:
Kõik nagu toimis, kuni tulid sisseloginud kasutajad. Siis läks kõik nende jaoks sassi! Kõik kasutajad hakkasid nägema selle kasutaja infot ja andmeid, kelle lehekülastuse hetkel cache-fail tekitati!

No ja täpselt nii ju peabki olema, kui sa kasutajaandmed ka cachesse topid.

SGM kirjutas:
Midagi olen lugenud ka SQL-cache teemast, aga praegu ei kujuta ette, kas see asi parandaks selle vea, et kas tasub edasi uurida. icon_rolleyes.gif

No oleneb, mida Su leht täpselt teeb, aga enamjaolt tasub raskemaid SQL päringuid cacheda, jah.

Igasuguste asjade cachemiseks on ilmselt kõige parem memcached. Sina pead ilmselt mingi failide põhise alternatiivi kirjutama (vt serialize()). Staatiliste või mitte muutuvate lehtede, piltide, JSi jms jaoks on Varnish. See muidugi eeldab oma serverit.

Netist leiad ilmselt ka High Performance MySQL II raamatu, kus on lähemalt kirjas kuidas asju andmebaasiga õigesti teha. Kui seda ei leia või osta ei suvatse, pole ka hullu, tee lihtsalt kindlaks, et (kõigel) on olemas indeksid ning vaata nende efektiivsus üle. EXPLAIN abiks. Ja kindlasti jäta meelde, et MySQL kasutab ALATI ainult ÜHTE indeksit korraga tabeli kohta.

Aeganõudvamad asjad ja kitsaskohad leiad Xdebug'i abil. Seda võid oma arenduskeskkonnas kasutada...
Kommentaarid: 3 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 3
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
SGM
HV kasutaja
SGM

liitunud: 04.12.2005



Autoriseeritud ID-kaardiga

sõnum 04.11.2008 19:35:17 vasta tsitaadiga

Mul seal staatilist sisu on vähe. Meenub sellest ajast, kui olin rate.ee kasutaja (häbi mulle, et seal olin), siis seal alati kõik asjad olid, et "uuendatakse 6 korda tunnis" või "5 minuti tagant" vms. Sama lugu oli ka kasutajate online-staatusega. Kuidas muidu saab olla nii tohutu kasutajahulga ja koormusega leht kiirem kui mu enda progetud leht mu oma localhostis, kus (local'is) vaid mina online olen! icon_biggrin.gif Ma hetkel ei kujuta ette, kuidas nemad on selle probleemi lahendanud, et ühe kasutaja andmed teisi segama ei hakka, kas iga kasutaja jaoks on eraldi cache? Leidsin mingi sellise juhendi muidu:
http://devzone.zend.com/node/view/id/1258
Et kas sihukesest asjast võib abi olla? icon_rolleyes.gif
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 1 :: 1 :: 0
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
linnumees
HV kasutaja

liitunud: 15.06.2005




sõnum 04.11.2008 19:46:19 vasta tsitaadiga

Sa cached lehe osi, mitte tervet lehte... Ja kui vaja, siis teed ka iga kasutaja jaoks eraldi cache. Aga üldiselt ei ole mõtet midagi cacheda, kui see efektiivne pole. Võta aga Xdebug ette ja vaata, mis toimub... Ja indeksid...
Kommentaarid: 3 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 3
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
lehm2
Kreisi kasutaja


liitunud: 19.09.2004




sõnum 04.11.2008 21:00:02 vasta tsitaadiga

Jah, nagu eespool mainitud ei cacheta kogu lehte vaid osasid, mis ei muutu. Proovi kasutada näiteks PHP-s PDO-d koos prepared statementidega, lisaks soovitan vaadata Zend_Cache komponenti icon_rolleyes.gif
_________________
Piilu siia, progreja!
Vajad abi Node.JS-ga ?
Võta ühendust !
Kommentaarid: 15 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 13
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
sander85
HV kasutaja
sander85

liitunud: 30.09.2007




sõnum 04.11.2008 22:42:38 vasta tsitaadiga

kindlasti oleks kõigepealt mõttekas koodi ennast optimeerida, selleks tuleks välja debugida, millised osad kõige aeglasemini toimivad ning seejärel need paremini kirjutada..
samuti uurida kui palju kogu päringust võtab päring baasi, kindlasti annab ka seal parandusi teha..

_________________
Think of how stupid the average person is, and realize half of them are stupider than that.
-- G. Carlin
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
SGM
HV kasutaja
SGM

liitunud: 04.12.2005



Autoriseeritud ID-kaardiga

sõnum 05.11.2008 18:12:33 vasta tsitaadiga

XDEBUG ei hakka mul tööle. Mul meenub, et varemgi on sellega närvid läbi lastud. :S
Kui teen juhendi järgi (tirin selle kodukalt php_xdebug-2.0.3-5.2.5.dll ja enablen selle faili php.ini seest (nagu õpetatud), siis ei hakka apache mul käima. Lülitan sisse, sekundi pärast viskab ise kinni. Ei mingeid veateateid ega midagi. Lihtsalt ei käivitu. Mul on XAMPP arvutis.

EDIT:

Sain teada, et ZEND optimizer on vaja disableda, kui xdebug-i kasutada. Nüüd hakkas apache käima. Xdebug'i kasutamise kallal pean ka veel uurima, hetkel on täiesti hiina keel ja must maa, et kuidas sellega midagi üldse teha saab! icon_rolleyes.gif
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 1 :: 1 :: 0
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  WWW »  kuidas/millega teha cache lehele, kus on sisseloginud kasutajad?
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.