product と product_variants という 2 つの大きなテーブルがあります。現在、私は MySQL ビューを使用しています。これは、この SQL ステートメントが何度も必要になるためです。データベース構造は変更できません。
製品:
ID | マスターです | アン | 名前 | 価格 ...
Product_Variants:
ID | PID (Product.ID の FK) | マスターです | アン | 名前 | 価格 ...
ビューmy_view
には、次のような選択が含まれています。
(SELECT * FROM `product`) UNION (SELECT * FROM `product_variants`)
今、次のようなクエリを実行しているとき:
SELECT * FROM my_view WHERE EAN = '11110'
約 0.5 秒から 1 秒かかります。各サブクエリに追加してビューのコンテンツを直接使用すると、where
超高速です (~0,004 秒):
(SELECT * FROM `product` WHERE EAN = '11110') UNION (SELECT * FROM `product_variants` WHERE EAN = '11110')
ビューでより高速な方法を使用するにはどうすればよいですか? MySQL 関数に変更する必要がありますか?
ティアマット