Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zagregowane tabele danych

Tej funkcjonalności najlepiej służyłaby funkcja o nazwie widok zmaterializowany , którego MySQL niestety brakuje. Możesz rozważyć migrację do innego systemu baz danych, takiego jak PostgreSQL.

Istnieją sposoby emulowania zmaterializowanych widoków w MySQL przy użyciu procedur składowanych, wyzwalaczy i zdarzeń. Tworzysz procedurę składowaną, która aktualizuje dane zagregowane. Jeśli zagregowane dane muszą być aktualizowane przy każdym wstawieniu, możesz zdefiniować wyzwalacz do wywołania procedury. Jeśli dane muszą być aktualizowane co kilka godzin, możesz zdefiniować Zdarzenie harmonogramu MySQL lub zadanie crona, aby to zrobić.

Istnieje podejście łączone, podobne do opcji 3, które nie zależy od dat danych wejściowych; wyobraź sobie, co by się stało, gdyby nowe dane dotarły o chwilę za późno i nie trafiły do ​​agregacji. (Możesz nie mieć tego problemu, nie wiem.) Możesz zdefiniować wyzwalacz, który wstawi nowe dane do „zaległości”, a procedura zaktualizuje tabelę zbiorczą tylko z zaległości.

Wszystkie te metody zostały szczegółowo opisane w tym artykule:http://www.fromdual.com/ mysql-materialized-views




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jaki jest najlepszy sposób na generowanie rang w MYSQL?

  2. 5 przydatnych zapytań MySql podczas tworzenia projektu

  3. Uzyskaj rekordy z najwyższym/najmniejszym <cokolwiek> na grupę

  4. Najlepszy sposób przechowywania ustawień użytkownika w MySQL?

  5. codeIgniter zamiast tego użyj mysql_real_escape_string(). problem z połączeniem z bazą danych