1

Mysqlビューは内部でどのように機能していますか?

create view testView  as select * from employee;

これを実行すると、内部で何が起こりますか?

4

1 に答える 1

2

通常、ビューのクレートは、呼び出されるまで実際にはあまり効果がありません。使用されるまで、ほとんど検証されます。

ビューは通常MERGE、ビューのクエリをそれを呼び出すクエリとマージするメソッドを使用します。ビューのもう1つの方法TEMP TABLEは、必要なときに一時テーブルを作成する方法ですが、これはあまり一般的ではありません。

メソッドを使用したビューの基本的な例MERGE

クエリの表示:

SELECT t1.col1, t2.col2, t2.col3 FROM t1 JOIN t2 USING(id) WHERE x = 1

クエリの呼び出し:

SELECT col1, col3 FROM view WHERE y = 2

MySQLは基本的にこのクエリを次のように実行します。

SELECT col1, col3 FROM (SELECT t1.col1, t2.col2, t2.col3 FROM t1 JOIN t2 USING(id) WHERE x = 1) WHERE y = 2

ただし、クエリはマージされて最適化されるため、次のような単純な形式に最適化されます。

SELECT col1, col3 FROM t1 JOIN t2 USING(id) WHERE x = 1 AND y = 2
于 2013-01-09T05:15:33.687 に答える