sql >> Database >  >> RDS >> Mysql

Hoe Materialized View te implementeren met MySQL?

Ik onderhoud een project genaamd Flexviews (http://github.com/greenlion/swanhart-tools ) die stapsgewijs vernieuwbare gematerialiseerde weergaven toevoegt aan MySQL (ook wel snelle verversing genoemd), zelfs voor weergaven die gebruikmaken van samenvoegingen en aggregatie. Ik werk al drie jaar aan dit project. Het bevat een hulpprogramma voor het vastleggen van wijzigingsgegevens om de databaselogboeken te lezen. Er worden geen triggers gebruikt.

Het bevat twee verversingsmethoden. De eerste is vergelijkbaar met uw methode, behalve dat er een nieuwe versie wordt gebouwd en vervolgens wordt RENAME TABLE gebruikt om de nieuwe voor de oude te verwisselen. Op geen enkel moment is de weergave niet beschikbaar voor bevraging, maar 2x de ruimte wordt voor een korte tijd gebruikt.

De tweede methode is echte "fast refresh", het heeft zelfs ondersteuning voor aggregatie en joins.

Er is een blogpost over:http://www.mysqlperformanceblog.com/2011/04/04/flexviews-part-3-improving-query-performance-using-materialized-views/

Flexviews is aanzienlijk geavanceerder dan het FromDual-voorbeeld waarnaar door astander wordt verwezen.



  1. PDO PHP bindValue werkt niet

  2. Mysql waar tussen en gelijk aan?

  3. Hoe kan ik zien of mijn tafel MyISAM of Innodb is?

  4. Oracle ROWID als functie/procedure parameter