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

Używasz wyzwalaczy jako alternatywy dla funkcji agregujących SQL?

Teoretycznie wyzwalacz może dokładnie aktualizować tabelę podsumowania, o ile:

  • Nie wyłączasz wyzwalacza
  • Nie aktualizujesz bezpośrednio tabeli podsumowań
  • Nie wprowadzasz zmian w danych źródłowych za pomocą TRUNCATE TABLE (jak zauważyłeś)

Również:

  • Musisz podać w tabeli podsumowania poprawną wartość początkową
  • Musisz używać InnoDB zarówno dla tabeli źródłowej, jak i tabeli podsumowań, więc aktualizacje są niepodzielne

Prowadzenie tabeli podsumowującej jest jednym z przykładów denormalizacji . Jak w przypadku każdej denormalizacji, wiąże się to z ryzykiem anomalii danych. Jesteś odpowiedzialny za utrzymanie integralności danych; baza danych jest ograniczona w tym, jak bardzo może ci w tym pomóc.

Zalecam, abyś od czasu do czasu sprawdzał tabelę podsumowań (np. godzinowa może wystarczyć), aby upewnić się, że nie wyszła z synchronizacji, i popraw ją, jeśli tak. To zależy od Ciebie, ponieważ baza danych nie może tego sprawdzić za Ciebie.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Złącze Python MySQL zwraca bajtarray zamiast zwykłej wartości ciągu

  2. Wyświetlaj kolumnę tylko wtedy, gdy nie jest pusta

  3. Suma grupowa z dwóch tabel według daty w MySQL

  4. Operator porównania MySQL, spacje

  5. Zsumuj wyniki kilku zapytań, a następnie znajdź 5 najlepszych w SQL