我继承了一个运行 Coldfusion8 和 MySQL 5.0.88 的站点。
我有两个表 -包含产品信息的文章 ( A ) 和包含卖家价格表的价格表 ( P )。
产品在产品表中是唯一的,但可能在价目表中包含多个条目(取决于价目表的数量)。
在我的产品搜索中,我需要从A获取产品信息,如果卖家为用户分配了价目表,我还需要从P中的相应价目表中获取价格。
在进行实际产品查询之前,我会预先编译所有卖家 ID 和价目表名称,如下所示:
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 秒。
问题:
这可以用不同类型的语法更快地完成吗?
感谢帮助!