我有2個大型表,產品和product_variants。 目前我正在使用MySQL視圖,因爲我需要多次SQL語句。 數據庫結構不能更改atm。MySQL聯盟中的視圖
產品:
ID | IsMaster | EAN |名稱|價格...
Product_Variants:
ID | PID(在Product.ID上的FK)| IsMaster | 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 馬特
您可以將數據作爲更多列(聯合)而不是更多行(聯合)嗎? – Bohemian