0

mysqlのマテリアライズドビューと通常のテーブルの違いを知りたいです。mysqlはマテリアライズドビューをサポートしていませんが、flexviewを使用できます

現在、通話詳細レコード (cdr ファイル) を処理し、レコードをテーブル (テーブル A など) に保存しています。次に、テーブル A のレコードをレコードごとにグループ化する別のテーブル (テーブル B など) を作成しています。そのため、テーブル B にはテーブル A の計算されたレコード (国または都市ごとのグループなど) が含まれます。

テーブル A は、すべての cdr ファイルを保存しているため、巨大なサイズで成長し続けています。テーブル B は、group by クエリを使用してテーブル A から取得したすべての結果を保存しています。

ここで、このシナリオで具体化されたビューをどのように実装できるか、クエリのパフォーマンスに関する限り、上記のシナリオのテーブル B と比較してどのように違いがあるかという質問です。

4

1 に答える 1

2

クエリのパフォーマンス、テーブル B からの SELECT と「flewview マテリアライズド ビュー」からの SELECT の比較に関しては、違いはありません。これは、flexview が実際のテーブルを作成し、そのテーブルの内容を維持するためです。

おそらく異なるのは、「マテリアライズド ビュー」テーブルの作成方法です。テーブル B にデータを入力して維持する方法とは異なる可能性が非常に高いです。

flexview がテーブルを維持する方法によっては、挿入/更新/削除操作が発生しているときに、同時実行性に影響が出る可能性があります。つまり、「更新」プロセスで行がロックされている場合、クエリは読み取りの実行をブロックされます。

ただし、マテリアライズド ビューに対するクエリに関しては、通常のテーブルに対するクエリと何ら変わりはありません。

于 2013-07-16T06:33:31.950 に答える