0
我繼承了一個運行Coldfusion8和MySQL 5.0.88的站點。如何在MySQL中增加我的左連接查詢性能?
我有兩個表 - 第(一),其中包含產品信息和價格表(P),其中包括銷售價格表。
產品在產品表中是唯一的,但在價格表中可能包含多個條目(取決於價格表的數量)。
在我的產品搜索,我需要從一個的產品信息,如果用戶是由賣方指定的價目表,我還需要抓住從各自的價目表價格在P。
我預編譯所有sellerIDs和價目表的名字做我的實際產品的查詢,看起來像在此之前:
SELECT count(A.id) AS total
FROM arts A
<cfif variables.use_pricelists neq "">
LEFT JOIN preislisten p ON
A.ean = P.ean
AND A.sellerID = p.sellerID
AND (
// precompiled list - hardcoded loop
(P.list_name = "-Standard-" AND P.sellerID = "2222222222222")
OR
(P.list_name = "I" AND P.sellerID = "3333333333333")
)
</cfif>
WHERE
...
雖然這個作品......它永遠。如果不檢查價格表,我可以在不到1秒的時間內運行我的搜索。如果價格表需要檢查,則需要7-10秒。
問題:
這可以用不同類型的語法更快地完成嗎?
感謝您的幫助!
我仍然在我的第一個月使用MySQL。索引編制有一個好的起點嗎? – frequent 2012-07-11 08:58:26
請在您考慮進行連接的列上創建索引,創建語法語法如上所示。 – 2012-07-11 09:04:44
好的。謝謝。快速提問:索引字段是否必須是唯一的? ean在A中是唯一的,但可以在P中有多個條目 – frequent 2012-07-11 09:08:16