回答:
マテリアライズドビューはMySQLに存在しません。
Flexviewsは前DBA StackExchangeで推奨されています
あなたはすでにそれを持っているので、あなたの側のいくつかのデューデリジェンスと肘のグリースはそれを使い続けるために必要かもしれません(まだそうしていなければ)
サマリーテーブルの設定を検討することもできます。サマリーテーブルを作成する前に、集計をサポートするためにベーステーブルにインデックスを付ける必要があります。
http://www.materialized.info/からの古い投稿があります。この投稿には、より興味深い現実的な戦略があります。トリガーを使用する必要があります。楽しそう...
ベーステーブルがそれほど大きくなく、1週間に1回テーブル全体のクエリを実行できる場合は、CREATE VIEWのMySQLドキュメントのUser Comments
セクションを参照してください。そのページで単語を検索します。materialized
MySQLでマテリアライズドビューを持つための2つの解決策を見つけました。
必要なすべてのデータを含む集計テーブルを作成してから、データの取得元のテーブルにトリガーを作成します。
定期的にデータをテーブルに集約するスケジューラーを作成します
私のブログ投稿で2つのオプションを実装する方法の詳細はこちら: マテリアライズドビューMySQL
基礎となるデータの大部分が安定している場合、またはビューとデータの違いを許容できる場合は、このユースケースに対応するために書いたシンプルなラップツールの使用を検討してください。これらにより、テーブルを生成する複雑なSQLクエリを個別のファイルに書き込むことができます。クエリ間の関係は自動的に導出され、クエリはUnix makeツールを介して適切な順序で実行されます。生成されたテーブルを更新するには、実行する必要がありますmake clean all
。このツールは、入力の事前に計算された結果に基づいて効率的に実行される洗練されたクエリを段階的に構築するのに非常に役立ちます。