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

集合体データテーブル

    この機能は、マテリアライズドビュー と呼ばれる機能によって最適に提供されます。 、残念ながらMySQLにはありません。 PostgreSQLなどの別のデータベースシステムへの移行を検討できます。

    ストアドプロシージャ、トリガー、およびイベントを使用して、MySQLでマテリアライズドビューをエミュレートする方法があります。集計データを更新するストアドプロシージャを作成します。挿入ごとに集計データを更新する必要がある場合は、プロシージャを呼び出すトリガーを定義できます。データを数時間ごとに更新する必要がある場合は、MySQLスケジューライベント またはそれを行うためのcronジョブ。

    オプション3と同様に、入力データの日付に依存しない組み合わせアプローチがあります。いくつかの新しいデータが到着するのが遅すぎて、それが集計に含まれない場合にどうなるか想像してみてください。 (この問題は発生しない可能性がありますが、わかりません。)新しいデータを「バックログ」に挿入するトリガーを定義し、プロシージャにバックログからのみ集計テーブルを更新させることができます。

    これらの方法はすべて、この記事で詳しく説明されています: http://www.fromdual.com/ mysql-マテリアライズドビュー




    1. SQL内部結合–SQLとMySQLで3つのテーブルを結合する方法

    2. SQLクエリから最初と最後のレコードを取得するにはどうすればよいですか?

    3. PostgreSQLの日付から年の日を取得する方法

    4. 意図しない副作用–ロックを保持している睡眠セッション