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?

Respuestas:


11

Las vistas materializadas no existen en MySQL.

Flexviews ha sido recomendado en el DBA StackExchange antes

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.


En la última versión de MySQL puede crear una tabla con material dba.stackexchange.com/a/226707/50702
Anterior

1

Encontré 2 posibles soluciones para tener vistas materializadas en MySQL:

  1. Cree una tabla de agregación con todos los datos necesarios y luego cree desencadenantes en las tablas de donde provienen los datos.

  2. 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


0

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.


Probablemente debería hacer que la divulgación (que usted es el autor de la herramienta) sea más prominente.
mustaccio

¡Buen punto! Edité la respuesta para aclarar esto.
Diomidis Spinellis
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.