sql >> Base de Datos >  >> RDS >> Mysql

Implementación de la base de datos de funciones más vistas

tienen las siguientes tablas:1. vistas2. views_hourly_summary3. views_daily_summary4. vistas_resumen_mensual5. views_alltime_summary

hacer que se ejecute un trabajo cron en los siguientes intervalos:

  1. ejecute cada hora y agregue previamente las vistas para esa hora de la tabla de vistas y guarde el resultado agregado previamente en la tabla views_hourly_summary, también actualice la tabla views_alltime_summary

  2. ejecutar al final de todos los días y preagregar las vistas para ese día de la tabla de horas y guardar el resultado preagregado en la tabla views_daily_summary

  3. ejecutar al final de cada mes y preagregar las vistas para ese día de la tabla de horas y guardar el resultado preagregado en la tabla views_daily_summary

a continuación, cuando obtenga los resultados, tendrá que hacer algunos cálculos de la siguiente manera:

  1. Por ejemplo, si desea obtener las vistas de las últimas 4 horas, obtendrá los datos de las 3 horas completas de la tabla por horas y los datos restantes los obtendrá de la tabla de vistas de la siguiente manera:

    seleccione item_id, sum (vistas) como vistas de vistas_resumen_por_hora donde la hora entre concat (izquierda (ahora () - intervalo de 3 horas, 14), '00:00') y concat (izquierda (ahora (), 14), '00:00' )agrupar por item_id

    unión

    seleccione item_id, cuente (1) como vistas desde vistas donde fecha y hora entre (ahora () - intervalo de 4 horas) y concat (izquierda (ahora () - intervalo de 3 horas, 14), '00:00') o fecha y hora> concat (izquierda ( now(), 14), '00:00')agrupar por item_id