非正規化について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 の完了に時間がかかるのはなぜでしょうか? 私が正しくしていないことがありますか?