複雑なクエリとは、少なくとも 2 つの結合を使用する必要があるクエリを意味します。データベースのスキーマ/モデルを構築したとしましょう。、 、、およびusers.user_id = 5
を求めています。結合 SQL ステートメントは記述しません。それらはすべて、データベースのスキーマ/モデルによってバックグラウンドで結合されます。MySQLで可能ですか?logins.lastlogin
groups.groupname
history.user_weight
質問する
112 次
2 に答える
2
ビューのアイデアが気に入らない場合-これは理想的です-次のようにして、ブランコが言及したオラクルのマテリアライズドビューをいつでも模倣できます。
、、およびを結合する各テーブルでINSERT
、DELETE
およびトリガーを作成します。(例)と呼ばれる新しい5番目のテーブルを更新しますUPDATE
users
logins
groups
history
lgh
したがってlgh
、上記のクエリにこの新しいテーブルを使用します。実際のビューよりもスキャンされる行数が減る可能性がありますが、元の 4 つのテーブルのいずれかでデータが変更されるたびにオーバーヘッドが発生します。この新しい lgh テーブルを使用する頻度と他の 4 つのテーブルを更新する頻度に応じて、パフォーマンスが向上する場合があります。
免責事項:
- 私はこの回避策を容認しません。これはあなたの質問に対する別の提案です。
- 代わりに、元の 4 つのテーブルに、おそらくその結合クエリで使用するすべての列に対しても、さらにインデックスを追加することを検討する必要があります。
- これは「キャッシング」に似ているかもしれませんが、そうではありません。
于 2012-08-30T11:53:29.857 に答える
1
はい、可能ですviews
于 2012-08-30T07:31:06.440 に答える