har følgende tabeller:1. visninger 2. views_hourly_summary3. views_daily_summary4. views_monthly_summary5. views_alltime_summary
få et cron-job kørt med følgende intervaller:
-
kør hver time og præaggreger visningerne for den time fra visningstabellen og gem det præaggregerede resultat i tabellen views_hourly_summary, opdater også tabellen views_alltime_summary
-
kør i slutningen af hverdagen og præaggreger visningerne for den pågældende dag fra timetabellen og gem det præaggregerede resultat i tabellen views_daily_summary
-
kør i slutningen af hver måned og præaggreger visningerne for den pågældende dag fra timetabellen og gem det præaggregerede resultat i tabellen views_daily_summary
næste gang, når du henter resultater, bliver du nødt til at lave noget matematik som følger:
-
Hvis du f.eks. vil hente visningerne for de sidste 4 timer, henter du de 3 hele timers data fra timetabellen, og for de resterende data henter du dem fra visningstabellen som følger:
vælg item_id, sum(views) som views fra views_hourly_summarywhere time mellem concat(left(now() - interval 3 hour, 14), '00:00') og concat(left(now(), 14), '00:00' )gruppe efter item_id
fagforening
vælg item_id, count(1) som visninger fra visninger, hvor datetime mellem (now() - interval 4 hour) og concat(left(now() - interval 3 hour, 14), '00:00') or datetime> concat(left( now(), 14), '00:00') grupper efter item_id