mají následující tabulky:1. pohledy2. views_hourly_summary3. views_daily_summary4. views_monthly_summary5. views_alltime_summary
mít úlohu cron spuštěnou v následujících intervalech:
-
spouštět každou hodinu a předběžně agregovat pohledy pro danou hodinu z tabulky pohledů a uložit předem agregovaný výsledek do tabulky views_hourly_summary, aktualizovat také tabulku views_alltime_summary
-
spustit na konci dne a předběžně agregovat zobrazení pro daný den z tabulky hodin a uložit předem agregovaný výsledek do tabulky views_daily_summary
-
spustit na konci každého měsíce a předběžně shromáždit zobrazení pro daný den z tabulky hodin a uložit předem agregovaný výsledek do tabulky views_daily_summary
dále při načítání výsledků budete muset provést nějaké výpočty takto:
-
Chcete-li například načíst zobrazení za poslední 4 hodiny, načtěte data za celé 3 hodiny z hodinové tabulky a pro zbývající data je načtěte z tabulky zobrazení následovně:
vyberte item_id, sum(views) as viewsfrom views_hourly_summarywhere hour between concat(left(now() - interval 3 hours, 14), '00:00') and concat(left(now(), 14), '00:00' )seskupit podle item_id
unie
vyberte item_id, count(1) as viewsfrom views where datetime between (now() – interval 4 hours) and concat(left(now() – interval 3 hour, 14), '00:00') or datetime> concat(left( now(), 14), '00:00')seskupit podle item_id