Mysql
 sql >> база данни >  >> RDS >> Mysql

Използване на тригери като алтернатива на SQL агрегатна функция?

На теория тригерът може да поддържа точно актуализирана обобщена таблица, стига:

  • Не деактивирате тригера
  • Не актуализирате директно обобщената таблица
  • Не правите промени в изходните данни чрез TRUNCATE TABLE (както отбелязахте)

Също така:

  • Трябва да заредите обобщената таблица с правилна начална стойност
  • Трябва да използвате InnoDB както за изходната таблица, така и за обобщената таблица, така че актуализациите са атомарни

Поддържането на обобщена таблица е един пример за денормализиране . Както при всяка денормализация, това крие риск от аномалии в данните. Вие носите отговорност за поддържането на целостта на данните; базата данни е ограничена в това колко може да ви помогне да направите това.

Препоръчвам ви да проверявате отново обобщената таблица от време на време (напр. всеки час може да е достатъчно), за да сте сигурни, че не е излязла от синхронизация, и да я коригирате, ако е така. От вас зависи да направите това, защото базата данни не може да го провери вместо вас.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Някои проблеми със Sphinx и PHP

  2. Не може да се запише голям текст в mysql чрез php

  3. Разлика в клеймото на MySQL

  4. Хеширане на парола и осоляване - това добър метод ли е?

  5. Вмъкнете множество записи в SQL, където стойностите са всички комбинации от дефинирани диапазони в една заявка