sql >> データベース >  >> RDS >> Mysql

SQL集計関数の代替としてトリガーを使用しますか?

    理論的には、トリガーは、次の場合に限り、サマリーテーブルを正確に更新し続けることができます。

    • トリガーを無効にしないでください
    • サマリーテーブルを直接更新しないでください
    • TRUNCATE TABLEを介してソースデータに変更を加えることはありません(ご指摘のとおり)

    また:

    • サマリーテーブルに正しい初期値をシードする必要があります
    • ソーステーブルとサマリーテーブルの両方にInnoDBを使用する必要があるため、更新はアトミックです

    要約テーブルの維持は、非正規化 の一例です。 。すべての非正規化と同様に、これはデータ異常のリスクがあります。あなたはデータの完全性を維持する責任があります。データベースは、それを行うのにどれだけ役立つかという点で制限されています。

    サマリーテーブルを時々再確認して(たとえば、1時間ごとで十分な場合があります)、同期が外れていないことを確認し、同期が取れていない場合は修正することをお勧めします。データベースはそれをチェックできないので、これを行うのはあなた次第です。




    1. OracleのAdd_monthの問題、請求サイクルを生成する必要があります

    2. Mac OS X(10.9.4)で「PHP」を修正するにはどうすればよいですか?

    3. SQL group by:where-clauseロジックを使用して、集計関数に基づいて結果をフィルタリングします

    4. SQLのビューを理解する