Mysql
 sql >> Database >  >> RDS >> Mysql

Come implementare la vista materializzata con MySQL?

Gestisco un progetto chiamato Flexviews (http://github.com/greenlion/swanhart-tools ) che aggiunge viste materializzate aggiornabili in modo incrementale a MySQL (noto anche come aggiornamento rapido), anche per le viste che utilizzano join e aggregazione. Lavoro a questo progetto da tre anni. Include un'utilità di acquisizione dei dati di modifica per leggere i registri del database. Non vengono utilizzati trigger.

Include due metodi di aggiornamento. Il primo è simile al tuo metodo, tranne per il fatto che viene creata una nuova versione e quindi RENAME TABLE viene utilizzato per scambiare il nuovo con il vecchio. In nessun momento la vista non è disponibile per l'interrogazione, ma il doppio dello spazio viene utilizzato per un breve periodo.

Il secondo metodo è un vero "aggiornamento rapido", ha persino il supporto per l'aggregazione e i join.

C'è un post sul blog a riguardo:http://www.mysqlperformanceblog.com/2011/04/04/flexviews-part-3-improving-query-performance-using-materialized-views/

Flexviews è significativamente più avanzato dell'esempio FromDual a cui fa riferimento astander.