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

¿Usar disparadores como una alternativa de función agregada de SQL?

En teoría, un activador puede mantener una tabla de resumen actualizada con precisión, siempre que:

  • No deshabilitas el activador
  • No actualiza la tabla de resumen directamente
  • No realiza cambios en los datos de origen a través de TRUNCATE TABLE (como anotó)

También:

  • Debe sembrar la tabla de resumen con un valor inicial correcto
  • Debe usar InnoDB tanto para la tabla de origen como para la tabla de resumen, por lo que las actualizaciones son atómicas

Mantener una tabla de resumen es un ejemplo de desnormalización . Como con toda desnormalización, esto corre el riesgo de anomalías en los datos. Usted es responsable de mantener la integridad de los datos; la base de datos está limitada en cuanto a cuánto puede ayudarlo a hacer eso.

Le recomiendo que vuelva a verificar la tabla de resumen de vez en cuando (por ejemplo, cada hora puede ser suficiente) para asegurarse de que no se haya desincronizado y corregirlo si es así. Depende de ti hacer esto, porque la base de datos no puede verificarlo por ti.