トリガーズのGuy Harrisonの「MySQLストアドプロシージャープログラミング」では、トリガーはサマリーテーブルを維持する方法です。MySQLでの派生データの管理:トリガーと定期的なジョブの比較
ここの例のサマリテーブルは、顧客の売上の合計値を格納するテーブルです。このデータは、個々のトランザクションを記録する「売上」テーブルから派生したものです。この例では、 'sales'テーブルのBEFORE INSERT、BEFORE UPDATEおよびBEFORE DELETEトリガを使用して、 'customer_sales_totals'テーブルを同期させています。 BEFORE INSERTトリガーは、 'customer_sales_totals'テーブルでselectを実行し、そこに行を挿入するか、既存のテーブルを更新します。
さて、のように仮定してみましょう:
- 毎日の販売 'テーブルに挿入された何千ものレコードの数十/数百があります。
- 'customer_sales_totals'が期限切れになることはありません。
- 各顧客には多くの売上があります(売上数は顧客数よりもはるかに多い)。
このシナリオでは、トリガーではなく定期的に優先度の低いジョブが 'customer_sales_totals'をより効率的に管理する方法になりますか?
おかげ Tymek