Dati niste idei despre cum ar trebui sa procedez sa gasesc "most clicked" in ultimele 24 ore. respectiv 48, intr-un mod optimizat?
** bd este in formare deci o pot face cum vreau eu
** sistemul trebuie sa suporte 2 000 000 utilizatori zilnici
** sa zicem ca e vorba de clickuri pe linkuri
** se face cron la o ora
most clicked
Moderatori: Zamolxe, Moderatori
Eu zic ceva de genu :
tabela most_clicked :
cu linkpagina UNIC
id linkpagina data clickuri
1 http://...../a.php 10
2 http://...../b.php 15
ca sa updatezi clickurile faci ceva de genu :
INSERT INTO most_clicked (id,linkpagina,data,clickuri) VALUES (null,'http://...../a.php',NOW(),1) ON DUPLICATE KEY UPDATE clickuri=clickuri+1
tabela most_clicked :
cu linkpagina UNIC
id linkpagina data clickuri
1 http://...../a.php 10
2 http://...../b.php 15
ca sa updatezi clickurile faci ceva de genu :
INSERT INTO most_clicked (id,linkpagina,data,clickuri) VALUES (null,'http://...../a.php',NOW(),1) ON DUPLICATE KEY UPDATE clickuri=clickuri+1
Iti multumesc petru ajutor, insa problema nu statea in contorizarea clickurilor ci:
selectarea celor mai clickuite 10 articole in ultimele 24ore, respectiv 48 ore
selectarea celor mai clickuite 10 articole in ultimele 24ore, respectiv 48 ore
Nu mai fi chel http://www.caderea-parului.ro
Nu mai fi chel http://www.caderea-parului.ro
tocmai, la tine e pe zile (calendaristice), eu aveam nevoie pe ultimele 24 ore, respectiv 48 ore, oricum iti multumesc :d si ramanem in dezbateri daca mai ai idei
Nu mai fi chel http://www.caderea-parului.ro
-
bogdanvursu
- PHPRomania Supporter
- Mesaje: 25
- Membru din: Lun Aug 29, 2005 4:16 pm
- Localitate: Iasi
Nu mai fi chel http://www.caderea-parului.ro
In solutia aleasa de tine poate aparea problema: ce te faci daca clientul vrea sa extinda statisticile la o luna sau la un an.
In cazul acesta curatarea bazei de date, nu prea va mai aduce nici un spor de performanta, fiindca pe perioada de un an pot apare usor 2 milioane de inregistrari in tabela de clickuri. Si in plus daca stergi inregistrarile mai vechi de 2 zile, vei pierde evidenta a ceea ce s-a intamplat acum o saptamana, sau acum o luna.
Cel mai optim mod in care poti realiza statisticile a fost prezentat in parte de tanatos (cu mentiunea ca trebuie index unic pe link+data) - problema era ca acuratetea datelor este de o zi.
Poti obtine insa o acuratete a datelor mai mica adaugand un alt camp, care sa tina "perioada" in care s-au facut clickurile pe un link, si daca n-a fost gasit nici un click in perioada aia, sa adauge in tabel, daca a fost gasit sa faca update.
Ai aici detalii despre cum se poate realiza asta.
In cazul acesta curatarea bazei de date, nu prea va mai aduce nici un spor de performanta, fiindca pe perioada de un an pot apare usor 2 milioane de inregistrari in tabela de clickuri. Si in plus daca stergi inregistrarile mai vechi de 2 zile, vei pierde evidenta a ceea ce s-a intamplat acum o saptamana, sau acum o luna.
Cel mai optim mod in care poti realiza statisticile a fost prezentat in parte de tanatos (cu mentiunea ca trebuie index unic pe link+data) - problema era ca acuratetea datelor este de o zi.
Poti obtine insa o acuratete a datelor mai mica adaugand un alt camp, care sa tina "perioada" in care s-au facut clickurile pe un link, si daca n-a fost gasit nici un click in perioada aia, sa adauge in tabel, daca a fost gasit sa faca update.
Ai aici detalii despre cum se poate realiza asta.
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 11 vizitatori
