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

Samlede datatabeller

Denne funktionalitet ville være bedst tjent med en funktion kaldet materialiseret visning , som MySQL desværre mangler. Du kunne overveje at migrere til et andet databasesystem, såsom PostgreSQL.

Der er måder at efterligne materialiserede visninger i MySQL ved hjælp af lagrede procedurer, udløsere og hændelser. Du opretter en lagret procedure, der opdaterer de samlede data. Hvis de samlede data skal opdateres på hver indsats, kan du definere en trigger for at kalde proceduren. Hvis dataene skal opdateres med få timers mellemrum, kan du definere en MySQL-planlægningsbegivenhed eller et cron-job for at gøre det.

Der er en kombineret tilgang, der ligner din mulighed 3, der ikke afhænger af datoen for inputdataene; forestil dig, hvad der ville ske, hvis nogle nye data ankommer et øjeblik for sent og ikke kommer med i aggregeringen. (Du har muligvis ikke dette problem, jeg ved det ikke.) Du kan definere en trigger, der indsætter nye data i en "backlog", og få proceduren til kun at opdatere den samlede tabel fra backloggen.

Alle disse metoder er beskrevet detaljeret i denne artikel:http://www.fromdual.com/ mysql-materialized-views




  1. Stor primær nøgle:1+ milliard rækker MySQL + InnoDB?

  2. Sammenlign strenge, der ignorerer accenter i SQL (ORACLE)

  3. Sådan får du id fra databasen ved klik på listevisningselement i Android

  4. MySql eksport skema uden data