He aprendido que las vistas se pueden usar para crear "vistas de tabla" personalizadas (por así decirlo) que agregan datos relacionados de varias tablas.Ventaja de usar Views en MySQL
Mi pregunta es: ¿cuáles son las ventajas de las vistas? En concreto, vamos a decir que tengo dos tablas:
event | eid, typeid, name
eventtype | typeid, max_team_members
Ahora crear una vista:
eventdetails | event.eid, event.name, eventtype.max_team_members
| where event.typeid=eventtype.typeid
Ahora si quiero número máximo de miembros que puede contener un equipo para algunos event
, pude:
- uso de la vista
- hacer una consulta de unión (o tal vez un procedimiento almacenado).
¿Cuáles serían mis ventajas/desventajas en cada método?
Otra consulta: si los datos en los eventos de tabla y tipo de evento se actualizan, ¿hay alguna sobrecarga relacionada con la actualización de los datos en la vista (teniendo en cuenta que almacena en caché los datos resultantes)?
"Una vista no se almacena por separado" - ¿entonces mysql no realiza el almacenamiento en caché de los contenidos de una vista? – jrharshath
Algunos otros motores de base de datos admiten "vistas materializadas" donde los resultados de la selección de la vista se almacenan en caché, pero MySQL no. Vea el comentario sobre vistas materializadas aquí: http://dev.mysql.com/doc/refman/5.5/en/create-view.html –
MySQL tiene un caché de consultas, por lo que si su consulta es exactamente la misma (por ejemplo, "select * from myview;"), es posible que obtenga resultados almacenados en caché. – Ken