Su ejemplo se aproxima a una vista materializada de "actualización completa". Es posible que necesite una vista de "actualización rápida", a menudo utilizada en una configuración de depósito de datos, si las tablas de origen incluyen millones o miles de millones de filas. Aproximaría una actualización rápida insertando/actualizando (upsert) uniendo la "tabla de vista" existente contra las claves primarias de las vistas de origen (suponiendo que se pueden conservar las claves) o guardando una fecha_hora de la última actualización y usar eso en los criterios de actualización de SQL para reducir el tiempo de actualización.
Además, considere usar el cambio de nombre de la tabla, en lugar de soltar/crear, para que la nueva vista pueda construirse y colocarse casi sin ningún espacio de indisponibilidad. Cree una nueva tabla 'mview_new' primero, luego cambie el nombre de 'mview' a 'mview_old' (o suéltelo), y cambie el nombre de 'mview_new' a 'mview'. En el ejemplo anterior, su vista no estará disponible mientras se ejecuta su SQL populate.
Eche un vistazo a [Vistas materializadas con MySQL] (http://www.fromdual.com/mysql-materialized-views) –