praegune kellaaeg 23.06.2025 15:15:27
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
SGM
HV kasutaja

liitunud: 04.12.2005
|
04.11.2008 13:20:44
kuidas/millega teha cache lehele, kus on sisseloginud kasutajad? |
|
|
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! 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.
|
|
Kommentaarid: 4 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
1 :: |
0 |
|
tagasi üles |
|
 |
linnumees
HV kasutaja
liitunud: 15.06.2005
|
04.11.2008 16:32:20
|
|
|
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.  |
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 |
|
 |
SGM
HV kasutaja

liitunud: 04.12.2005
|
04.11.2008 19:35:17
|
|
|
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! 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?
|
|
Kommentaarid: 4 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
1 :: |
0 |
|
tagasi üles |
|
 |
linnumees
HV kasutaja
liitunud: 15.06.2005
|
04.11.2008 19:46:19
|
|
|
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 |
|
 |
lehm2
Kreisi kasutaja

liitunud: 19.09.2004
|
04.11.2008 21:00:02
|
|
|
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
_________________ Piilu siia, progreja!
Vajad abi Node.JS-ga ?
Võta ühendust ! |
|
Kommentaarid: 15 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
13 |
|
tagasi üles |
|
 |
sander85
HV kasutaja

liitunud: 30.09.2007
|
04.11.2008 22:42:38
|
|
|
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 |
|
 |
SGM
HV kasutaja

liitunud: 04.12.2005
|
05.11.2008 18:12:33
|
|
|
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!
|
|
Kommentaarid: 4 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
1 :: |
0 |
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
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.
|