我有 2 个大表,product 和 product_variants。目前我正在使用 MySQL 视图,因为我多次需要此 SQL 语句。无法更改数据库结构 atm。
产品:
ID | 是大师 | EAN | 姓名 | 价格 ...
Product_Variants:
ID | PID(Product.ID 上的 FK)| 是大师 | EAN | 姓名 | 价格 ...
该视图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 函数吗?
TIA 马特