DevProTalk

Forumi IT profesionalaca
web development, web design, e-business, SEO


Idite nazad   DevProTalk > Web development i web aplikacije > SQL baze podataka - Sponzor: Baze-Podataka.net
Želite da se reklamirate ekskluzivno na ovoj poziciji? Javite se

SQL baze podataka - Sponzor: Baze-Podataka.net MySQL, MSSQL, Oracle, Access, ODBC. Ako imate problem brže i preciznije ćete dobiti odgovor ako priložite strukturu tabela ili skript koji kreira tabele i puni ih test podacima umesto što to problem opisujete samo rečima. Sponzor: Baze-Podataka.net - Blog o bazama podataka

Odgovori
 
Alati teme Način prikaza
Staro 09. 01. 2006.   #1
robi-bobi
expert
Grand Master
 
Avatar robi-bobi
 
Datum učlanjenja: 05.10.2005
Lokacija: Sofia, Bulgaria
Poruke: 805
Hvala: 222
958 "Hvala" u 68 poruka
robi-bobi ima spektakularnu aururobi-bobi ima spektakularnu aururobi-bobi ima spektakularnu aururobi-bobi ima spektakularnu aururobi-bobi ima spektakularnu aururobi-bobi ima spektakularnu aururobi-bobi ima spektakularnu aururobi-bobi ima spektakularnu auru
Pošaljite poruku preko Skype™ za robi-bobi
Default mysql cache

pozdrav

interesuje me da li je neko od vas koristio mysql cache-ing
da li ste zadovoljni njime?

koji bi cache algoritam bio bolji:
rucno uradjen iz jezika (PHP, cache bi se cuvao u fajlovima i obnavljao iz crona) ili koristiti MySQL cache
robi-bobi je offline   Odgovorite uz citat
Staro 09. 01. 2006.   #2
Ilija Studen
Direktor Kombinata
Invented the damn thing
 
Avatar Ilija Studen
 
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
Ilija Studen će postati "faca" uskoroIlija Studen će postati "faca" uskoro
Default

Sisteme za keširanje sam uglavnom pravio sam na nivou skripte. MySQL cache nisam koristio.

Možda ti se ovo učini zanimljivim:

- ADOdb keširanje - nameravam da iskoristim ovu mogućnost uskoro pa javljam utiske.
- Cache_Lite PEAR paket - radi maksimalno korektno, a krajenje je jednostavan za korišćenje.

Poslednja izmena od Ilija Studen : 09. 01. 2006. u 17:48.
Ilija Studen je offline   Odgovorite uz citat
Staro 10. 01. 2006.   #3
Bojan Zivanovic
profesionalac
Professional
 
Avatar Bojan Zivanovic
 
Datum učlanjenja: 06.06.2005
Lokacija: Pančevo - Pariz
Poruke: 287
Hvala: 6
8 "Hvala" u 8 poruka
Bojan Zivanovic is on a distinguished road
Pošaljite poruku preko Skype™ za Bojan Zivanovic
Default

MySQL ima interni cache i njega nemoj nikako da koristis, posto on obrise ceo cache za datu tabelu cim promenis (UPDATE) jedan red.. Znaci vrlo glupo, samo ce da uspori aplikaciju..
Najbolje resenje je memcached.
Svi veliki sajtovi ga koriste (livejournal,slashdot...)
Ima API za sve vece jezike...
__________________
The knack of flying is learning how to throw yourself at the ground and miss.
Bojan Zivanovic je offline   Odgovorite uz citat
Staro 10. 01. 2006.   #4
robi-bobi
expert
Grand Master
 
Avatar robi-bobi
 
Datum učlanjenja: 05.10.2005
Lokacija: Sofia, Bulgaria
Poruke: 805
Hvala: 222
958 "Hvala" u 68 poruka
robi-bobi ima spektakularnu aururobi-bobi ima spektakularnu aururobi-bobi ima spektakularnu aururobi-bobi ima spektakularnu aururobi-bobi ima spektakularnu aururobi-bobi ima spektakularnu aururobi-bobi ima spektakularnu aururobi-bobi ima spektakularnu auru
Pošaljite poruku preko Skype™ za robi-bobi
Default

da, bas sam danas procitao za taj feature mysql cache-a
dakle, to otpada

stvarno glupo od mene sto se nisam ranije setio PEAR-a

PHP kôd:

<?php
require_once('Cache/Lite.php');

$options = array(
    
'cacheDir' => '/tmp/',
    
'lifeTime' => 3600
);

// Create a Cache_Lite object
$Cache_Lite = new Cache_Lite($options);

if (
$data $Cache_Lite->get('block1')) {
    echo(
$data);
} else {
    
$data 'Data of the block 1';
    
$Cache_Lite->save($data);
}

echo(
'<br><br>Non cached line !<br><br>');

if (
$data $Cache_Lite->get('block2')) {
    echo(
$data);
} else {
    
$data 'Data of the block 2';
    
$Cache_Lite->save($data);
}

?>
ovo izgleda obecavajuce
kod ovog paketa je samo 32kB, sto je opet sasvim, sasvim ok

moja prva ideja je bila da uradim file cache-iranje upravo na slican nacin, samo sam se cudio sta cu sa problemima konkurentnih write operacija.

Mozda na kraju samo 'ukradem' logiku iz Cache_Lite


u principu ne volim velike gotove projekte
sa ADOdb sam radio samo jednom - nije nikakav problem, ali ja radije koristim moj mali library
takodje, on ovde otpada jer je meni bolje raditi cache gotowog HTML koda, nego rezultata iz DB

edit:
takodje, mislim da je varijanta sa stalnim proveravanjem:
PHP kôd:
<?php
if(ima_kesha()) {
  
$block1 ucitaj_kesh();
} else {
  
generate_kesh();
  
$block1 ucitaj_kesh();
}
sporija od verzije gde ja znam da kesh postoji( i koji cu pregenerirati cron jobom) te zato uvek radim:
PHP kôd:
<?php
$block1 
ucitaj_kesh();
vasa misljenja?

Poslednja izmena od robi-bobi : 10. 01. 2006. u 01:08.
robi-bobi je offline   Odgovorite uz citat
Staro 10. 01. 2006.   #5
Ilija Studen
Direktor Kombinata
Invented the damn thing
 
Avatar Ilija Studen
 
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
Ilija Studen će postati "faca" uskoroIlija Studen će postati "faca" uskoro
Default

Ne treba preterano vremena pa preraditi Cache_Lite da radi nezavisno od PEARa. Uradio sam to pre nekih godinu dana. Nikakav problem...

Ideja da uvek imaš spreman cache (kreiran od strane skripte, crona ili ručno od strane korisnika) je sasvim OK. Ali opet, sve zavisi od konkretnog slučaja. Proveravanja da li cache postoji i nije toliko usporenje ako je učitavanje potrebnih podataka iz baze dugo i zahtevno recimo.

Off Topic:

Što se ADOdb tiče ni ja ne volim previše glomazna gotova rešenja, ali mi treba proveren skup PHP4 klasa koji radi lepo sa svim popularnim bazama, a da ja ne moram da izmišljam toplu vodu. ADOdb se pokazao kao dobro rešenje: odlične performanse, relativno mali kad se okreše na minimalnu instalaciju, gomile zgodnih i proverene mogućnosti... Ima i svojih mana, ali su zanemarive naspram onoga što dobijaš (provereno, brzo, bogato).

Ilija Studen je offline   Odgovorite uz citat
Staro 10. 01. 2006.   #6
robi-bobi
expert
Grand Master
 
Avatar robi-bobi
 
Datum učlanjenja: 05.10.2005
Lokacija: Sofia, Bulgaria
Poruke: 805
Hvala: 222
958 "Hvala" u 68 poruka
robi-bobi ima spektakularnu aururobi-bobi ima spektakularnu aururobi-bobi ima spektakularnu aururobi-bobi ima spektakularnu aururobi-bobi ima spektakularnu aururobi-bobi ima spektakularnu aururobi-bobi ima spektakularnu aururobi-bobi ima spektakularnu auru
Pošaljite poruku preko Skype™ za robi-bobi
Default

stvar je u tome sto cu kesh regenerirati relativno brzo - bice blokova koji ce biti keshirani samo 5-10 min, mada ce biti i takvih koji ce imati do 5 dana lifetime

imedju ostalog (kad smo vec otisli u offtopic) koje su vase preporuke za ubzanje koda?
radi se o sajtu koji ima preko 4 000 registrovanih korisnika, dobar deo njih je veoma aktivan u vreme nekih takmicenja i glasanja, tako da je u to vreme server dosta 'zauzet'
(sajt je dostupan i neregistrovanim posetiocima)

evo i daljih mojih razmisljanja:
- sajt ce biti multilingual. ono sto se moze keshirati ce biti u language-specific keshu. U principu za obicne fraze ('login', 'username' i sl) obicno imam nekoliko fajlova tipa: translation.en.php koje inkludujem u zavistosti od izabranog jezika. neko bolje resenje?
- mod_rewrite - koliko on ustvari opterecuje server? procena u procentima mi saswim odgowara


takodje, izgleda da cu morati da im napisem i mali forumchic
tipovi imaju phpBB, koji po meni nije prijateljski nastrojen ka resursima. koliko sam mogao shvatiti od kratkog researcha, gotovi forumi imaju sledece boljke:
- pre ili kasnije postanu teski
- oni koji nisu jos uvek postali teski, imaju mali lifetime, sto znaci da nisu dobro oprobani protiv svakojakih hack-ova i sl - a upravo to je ono sto je meni dosta bitno
najverovatnije cu uraditi neki tiny forum sa naj-naj vaznijim opcijama iz phpBB-a i toliko

moderatori: mozda da splitujemo temu i da od mog posta: "da, bas sam danas procitao za taj feature mysql cache-a ....." ovo ode u PHP?

Poslednja izmena od robi-bobi : 10. 01. 2006. u 16:50.
robi-bobi je offline   Odgovorite uz citat
Staro 10. 01. 2006.   #7
Ilija Studen
Direktor Kombinata
Invented the damn thing
 
Avatar Ilija Studen
 
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
Ilija Studen će postati "faca" uskoroIlija Studen će postati "faca" uskoro
Default

Pogledaj ovu temu.
Ilija Studen je offline   Odgovorite uz citat
Staro 11. 01. 2006.   #8
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

Citat:
Originalno napisao robi-bobi
- sajt ce biti multilingual. ono sto se moze keshirati ce biti u language-specific keshu. U principu za obicne fraze ('login', 'username' i sl) obicno imam nekoliko fajlova tipa: translation.en.php koje inkludujem u zavistosti od izabranog jezika. neko bolje resenje?
ja preferiram gettext jer je standard, i olaksava posao oko odrzavanja prevoda (sam cupa reci koje treba prevesti i pravi language fajl), ali sto se tice perfomansi je verovatno slabije resenje od tvog...

Ako imas puno include-a razmisli da na server instaliras APC ili neko slicno resenje (mozda i komercijalni Zend optimizer) jer oni kesiraju inkludovane fajlove u izkomajliranoj formi sto moze znacajno da ubrza stvari...

Citat:
Originalno napisao robi-bobi
- mod_rewrite - koliko on ustvari opterecuje server? procena u procentima mi saswim odgowara
u principu overhead je vrlo mali jer se radi o veoma optimizovanom kodu koji koristi unapred kompajlirane regExp-e, ali brzina zavisi dosta od RewriteRules koje koristis i na to treba paziti. Procitaj manual za mod_rewrite za detaljno objasnjenje, ali ukratko treba da:
1. rules stavis u httpd.conf (a ne u .htaccess) ako imas privilegije naravno naravno,
2. da izbegavas pravila koja pristupaju fajl sistemu ( -f , -d i slicno)
3. da izbegavas externe [R] redirekte... ako su ti pravila u httpd.conf onda ti [L] flag (leave) ne dodaju overhead jer nije potreban interni redirekt, a ako su u .htaccess onda da, i tada treba izbegavati visestruke [L] redirekte (mada su interni redirekti i dalje brzi od externih)
4. Ako koristis .htacess fajlove, onda treba u svaki sub-direktorijum da stavis .htaccess, makar i prazan, jer ako apache ne nadje .htaccess u dir-u on ga trazi na gore kroz hijerarhiju direktorijuma sve do roota. Znaci ako mu ga odmah das, ustedeces mu par pristupa faj sistemu (ili jos bolje ako mozes iskljuci .htacess i postavi sva podesavanja u httpd.conf)

a tacne procente ne znam, naravno, najzdravije je da sam testiras i vidis kako se ponasa na tvom sistemu..
__________________
Leadership is the art of getting people to want to do what you know must be done.
ivanhoe je offline   Odgovorite uz citat
Staro 11. 01. 2006.   #9
bluesman
Goran Pilipović
Sir Write-a-Lot
 
Avatar bluesman
 
Datum učlanjenja: 18.05.2005
Lokacija: Beograd
Poruke: 5.450
Hvala: 288
1.247 "Hvala" u 446 poruka
bluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušati
Pošaljite ICQ poruku za bluesman
Default

Vrlo interesantna tema...

Ja sam koristio svoj neki interni cache, na osnovu ovoga sto vidim radi slicno ovaj PEAR klasi, samo sto ja nemam te ostale "fensi" opcije, vec jedino (un)serialize i slicno se ponasa kao session.

To je najprimenjivije na stranama kao sto su "who is online" sa mnogo usera, recimo kod mene je to najpopularnija strana i u minuti imam i po 30 querija, manje-vise identicnih... a za minut, malo toga moze i da se promeni, a i ako se promeni, nije kriticno.

Mysql cache nisam nikada ni pokusavao da koristim, moram da verujem na rec Bojanu, mada ne mogu da poverujem da su to bas tako traljavo odradili da je neupotrebljivo.

Koliko sam ja upoznat, mysql ima svoj interni cache querija pa cak i ako ne koristis cache i ako saljes isti query nekoliko puta, ona ga cache-ira interno. To se lako moze videti kada izvrsite neki komplikovan query nad velikom tabelom i merite execution time. Prvi put je uvek najveci, zatim pada uvek na 0,0x sekundi...

Prvo sto sam razmisljao kada sam pravio moj mali cache je da je uvek brze procitati iz mysql nego iz filesystem-a, medjutim kada bolje razmislis i mysql pristupa filesystem-u pa ako stvarno ima smisla (query je komplikovan) onda je sasvim opravdano citati iz cache pre nego baze.

Moram da probam i ovaj memcached.
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman
I don't always know what I'm talking about but I know I'm right!
bluesman je offline   Odgovorite uz citat
Staro 11. 01. 2006.   #10
robi-bobi
expert
Grand Master
 
Avatar robi-bobi
 
Datum učlanjenja: 05.10.2005
Lokacija: Sofia, Bulgaria
Poruke: 805
Hvala: 222
958 "Hvala" u 68 poruka
robi-bobi ima spektakularnu aururobi-bobi ima spektakularnu aururobi-bobi ima spektakularnu aururobi-bobi ima spektakularnu aururobi-bobi ima spektakularnu aururobi-bobi ima spektakularnu aururobi-bobi ima spektakularnu aururobi-bobi ima spektakularnu auru
Pošaljite poruku preko Skype™ za robi-bobi
Default

da, zaista, ovo sto je ivanhoe rekao za httpd i .htaccess je tako logicno a nisam se toga setio.
hvala opet za hintove za mod_rewrite. otprilike sam upoznat sa svim onim njegovim flagovima, ali bicu dobar, evo idem da citam apache man.

ilija, tu temu sam citao ranije, ali je svakako odlicna. Hvala sto si me podsetio na nju

Citat:
Prvo sto sam razmisljao kada sam pravio moj mali cache je da je uvek brze procitati iz mysql nego iz filesystem-a
da, i ja sam se pitao sta je ustvari brze... Ipak sql server je napravljen (izmedju ostalog ) za to - da prima stotine konkurentnih upita. A filesystem - kako ce se to drzati na sajtu koji ima puno request-a. Videcemo. Po meni bi kesh trebao biti brzi, jer:
- mysql koristi filesystem (ma koliko optimizovan nacin njegovog pristupa bio, opet je to filesystem)
- zahvaljujuci pear klasi, videcu kako je resheno pitanje lock-ova fajlowa i konkurentnih write operacija. Taj problem takodje otpada
- ponekad ce podaci zahtevati obradu u PHP-u. kesh tu takodje dobija bitku

dakle, sve u svemu zakljucak je sledeci:
- rucni kesh (najverovatnije uradjen od PEAR kech-a) je ok. Keshiracu gotovi html, ne DB objekte
- translation: gettext je dobar, mada verovatno fajl sa translationima takodje radi isti posao (mozda i bolji). U ovom slucaju ja cu se verovatno odluciti za lang file koji mi je poznatiji pristip
- mod_rewrite - ok je koristiti, treba paziti ipak. Sajt ce biti na sopstvenom serveru, tako da cu izkljuciti .htaccess
- uraditi enkode (zend encode je ipak skup (najjeftinija varijanta: $2400/lifetime), pogledacu i alternative)


naravno pazicu na petlje, "dobar programerski stil", radicu include samo onih fajlova koji mi trebaju i samo tamo gde mi treba itd
robi-bobi je offline   Odgovorite uz citat
Odgovori



Pravila pisanja
Možete ne započinjati nove teme
Možete ne slati odgovore
Možete ne slati priloge
Možete ne izmeniti svoje poruke
vB kôd je Uključen
Smajliji su Uključen
[IMG] kod je Uključen
HTML kôd je Isključen
Pogledajte forum

Slične teme
Tema Početna poruka teme Forum Odgovori Poslednja poruka
cache ivanhoe Flash 4 08. 09. 2010. 12:46
Cache rjesenje ... Zizi PHP 2 17. 06. 2009. 23:48
about:cache sirNemanjapro Web aplikacije, web servisi i software 9 15. 01. 2007. 15:55
server i cache borstale Web Hosting, web serveri i operativni sistemi 16 22. 04. 2006. 04:49
Kako ubiti FF cache ? ivanhoe (X)HTML, JavaScript, DHTML, XML, CSS 15 03. 03. 2006. 17:20


Vreme je GMT +2. Trenutno vreme je 01:32.


Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.
Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.