1

非正規化についてMySQLでいくつかのテストを行っていました。私は3つのテーブルt1、t2、t3を持っていました

t1 = { c1 ,c2,h1}
t2 = { c1 , c3 }
t3 = { c3 , c4, c5, c6}
プライマリ キー 外部キー

t1 には 2000 のタプルがあり、t2 には同じタプルがあり、t3 には 1000 のタプルがあります。

500 人の同時ユーザーがそれぞれ 1 つのクエリを実行することをシミュレートするプログラムを作成しました。これらは私が得た結果です。

SELECT t3.c5 FROM t3
 INNER JOIN t2 ON t2.c3 = t3.c3
 INNER JOIN t1 ON t1.c1 = t2.c1
WHERE t3.c4 > 100

これには 2326 ミリ秒かかります

次に、前のクエリを使用してビューを作成し、CREATE VIEW vista AS SELECT *...500 人のユーザーを再び起動しましたが、次のクエリを使用します。

SELECT c5 FROM vista WHERE c4 > 100

そして、2405ミリ秒かかりました!(JOIN以上)

そして、次のクエリを試しました。

SELECT c5 FROM t3 WHERE c4 > 100

827ミリ秒かかりました


では、ビューに対して実行される SELECT の完了に時間がかかるのはなぜでしょうか? 私が正しくしていないことがありますか?

4

0 に答える 0