sql >> Databasteknik >  >> RDS >> Mysql

Hur implementerar man Materialized View med MySQL?

Jag har ett projekt som heter Flexviews (http://github.com/greenlion/swanhart-tools ) som lägger till stegvis uppdateringsbara materialiserade vyer till MySQL (aka snabbuppdatering), även för vyer som använder kopplingar och aggregering. Jag har jobbat med det här projektet i tre år. Den innehåller ett verktyg för att fånga ändringsdata för att läsa databasloggarna. Inga utlösare används.

Den innehåller två uppdateringsmetoder. Den första liknar din metod, förutom att en ny version byggs, och sedan används RENAME TABLE för att byta ut den nya mot den gamla. Vid ingen tidpunkt är vyn otillgänglig för sökning, men 2x utrymmet används under en kort tid.

Den andra metoden är sann "snabbuppdatering", den har till och med stöd för aggregering och sammanfogningar.

Det finns ett blogginlägg om det:http://www.mysqlperformanceblog.com/2011/04/04/flexviews-part-3-improving-query-performance-using-materialized-views/

Flexviews är betydligt mer avancerat än FromDual-exemplet som astander refererar till.



  1. Åtkomstvärde i resultatuppsättningsraden där värdet kommer från ett MySQL-funktionsanrop

  2. Hur LOCATE()-funktionen fungerar i MySQL

  3. ResultSet.next mycket långsamt endast när frågan innehåller FIRST_ROWS eller ROWNUM begränsning

  4. kan inte ladda oci8 -> Allvarligt fel:Anrop till odefinierad funktion oci_connect()