Prowadzę projekt o nazwie Flexviews (http://github.com/greenlion/swanhart-tools ), która dodaje do MySQL stopniowo odświeżane widoki zmaterializowane (inaczej szybkie odświeżanie), nawet w przypadku widoków korzystających z łączeń i agregacji. Pracuję nad tym projektem od trzech lat. Zawiera narzędzie do przechwytywania zmian danych, które umożliwia odczytywanie dzienników bazy danych. Nie są używane żadne wyzwalacze.
Zawiera dwie metody odświeżania. Pierwsza jest podobna do twojej metody, z tą różnicą, że budowana jest nowa wersja, a następnie RENAME TABLE służy do zamiany nowej na starą. W żadnym momencie widok nie jest niedostępny do zapytania, ale przez krótki czas używane jest 2x więcej miejsca.
Druga metoda to prawdziwe „szybkie odświeżanie”, ma nawet obsługę agregacji i złączeń.
Jest na ten temat post na blogu:http://www.mysqlperformanceblog.com/2011/04/04/flexviews-part-3-improving-query-performance-using-materialized-views/
Flexviews jest znacznie bardziej zaawansowany niż przykład FromDual, do którego odwołuje się astander.