La mejor manera de crear una vista materializada en MySQL
19
Estoy usando MySQL 5.6. No puedo crear una vista materializada como puedo en Oracle. He visto una o dos soluciones como Flexview.
¿Alguien puede decirme la mejor manera de crear una vista materializada en MySQL (actualización automática como en Oracle) con el mínimo de complejidad?
Como ya lo tiene, puede ser necesario un poco de diligencia debida y grasa de su parte para continuar usándolo (si aún no lo ha hecho)
ALTERNATIVA # 1
Puede considerar la configuración de tablas de resumen. Deberá indexar las tablas base para admitir la agregación antes de crear tablas de resumen.
ALTERNATIVA # 2
Aquí hay una publicación antigua de http://www.materialized.info/ que tiene una estrategia más realista que parece intrigante. Implica el uso de disparadores. Parece que podria ser divertido ...
ALTERNATIVA # 3
Si sus tablas base no son tan grandes y puede vivir con la consulta de tablas completas una vez por semana, pruebe la User Commentssección de la documentación de MySQL en CREATE VIEW para obtener ideas. Busca palabras materializeden esa página.
Si sus datos subyacentes son en su mayoría estables o puede tolerar la diferencia entre la vista y los datos, considere usar las herramientas de solapa simple , que escribí para abordar este caso de uso. Estos le permiten escribir en archivos separados consultas SQL complejas que generan tablas. Las relaciones entre las consultas se derivan de forma automática y las consultas se ejecutan en el orden apropiado a través de la Unix make herramienta. Para actualizar las tablas generadas, debe ejecutar make clean all. La herramienta es principalmente útil para construir de forma incremental consultas sofisticadas que se ejecutan de manera eficiente en función de los resultados calculados previamente de sus entradas.
Encontré 2 posibles soluciones para tener vistas materializadas en MySQL:
Cree una tabla de agregación con todos los datos necesarios y luego cree desencadenantes en las tablas de donde provienen los datos.
Cree un planificador que agregue periódicamente los datos en una tabla
Vea más detalles sobre cómo implementar las 2 opciones en mi blog aquí: vista materializada MySQL
fuente
Si sus datos subyacentes son en su mayoría estables o puede tolerar la diferencia entre la vista y los datos, considere usar las herramientas de solapa simple , que escribí para abordar este caso de uso. Estos le permiten escribir en archivos separados consultas SQL complejas que generan tablas. Las relaciones entre las consultas se derivan de forma automática y las consultas se ejecutan en el orden apropiado a través de la Unix make herramienta. Para actualizar las tablas generadas, debe ejecutar
make clean all
. La herramienta es principalmente útil para construir de forma incremental consultas sofisticadas que se ejecutan de manera eficiente en función de los resultados calculados previamente de sus entradas.fuente