Pogledajte određenu poruku
Staro 02. 03. 2009.   #1
mb_sa
profesionalac
Qualified
 
Datum učlanjenja: 19.05.2007
Poruke: 123
Hvala: 13
3 "Hvala" u 3 poruka
mb_sa is on a distinguished road
Default MYSQL: Kako struktuirati tabele vezano za broj prikaza nekog teksta na stranici?

Zdravo svima.

Recimo da imam tabelu 'tekstovi'

Kôd:
TEKSTOVI
id, naslov, broj_prikaza (broj pregleda jednog teksta)
Podatak 'broj_prikaza' se dobije izvrsavanjem jenodstavnog UPDATE upita, tipa:
Kôd:
UPDATE tekstovi SET broj_prikaza = broj_prikaza+1 WHERE id = 344363;
Ovaj podatak prikazujem na razlicitim mjestima, poput skracenog prikaza teksta u njegovoj kategoriji, na naslovnoj stranici, na prikazu samog teksta i slicno

Znam da je ovaj upit jako jednostavan i brz (pise u mysql dokumentaciji), ali ce se oni izvrsavati kod svakog prikaza oglasa.

Problem je sljedeci: Kao sto znamo kada se radi UPDATE nad nekom tabelom ta tabela ce biti lockovana i svi SELECT upiti ce biti na cekanju, a radi se o glavnoj tabeli koja ce se korstiti u svakom upitu. Takodjer, koliko znam bilo kakav update nad nekom tabelom će poremetiti interni mysql cache, tako da i tu postoje određeni gubici. A stranica bi trebala da bude jako posjećena.

Ja sam razmisljao da se napravi dodatna tabela 'prikazi':

Kôd:
PRIKAZI
id_tekst,broj_prikaza
U kojoj ce se vrsiti svi moguci update vezani za prikaz teksta, a onda bih nariktao cron job (svaka 24h, sa obzirom da mi ne trebaju real time podaci) koji ce sumarne prikaze prbaciti u tabelu 'tekstovi', tako da bih ih imao u glavnoj tabeli, izvlacio kada mi trebaju, a pomenuta tabela ne bi bila opterecena pomenutim update upitom.

Pretpostavljam da JOIN ove dvije tabele ne dolazi kao rješenje (sa ciljem da se izbjegne CRON job), jer bi i tada se pojavljivali 'isti problemi', a plus bi imli dodatno spajanje tabela.

Da li moja razmisljanja su ispravna i kakva su vaša iskustva sa ovim o čemu trenutno pišem?

Hvala unaprijed na učešću u temi.

Pozz, mb
mb_sa je offline   Odgovorite uz citat