我继承了一个运行Coldfusion8和MySQL 5.0.88的站点。
我有两个表-物品(A),其中包含产品信息,和价格表(P),其中包括卖方价格表。
产品在Products表中是唯一的,但可能包含在价格表中的多个条目(取决于价格表的数量)。
在我的产品搜索中,我需要从A获得产品信息,如果用户被卖方指定了价格表,我还需要从P中的相应价格表中获取价格。
在进行实际产品查询之前,我正在预编译所有sellerID和价格表名称,如下所示:
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秒。
问题
用不同类型的语法能更快地做到这一点吗?
谢谢你帮忙!
发布于 2012-07-11 08:57:31
为什么不对列进行索引,以获得更好的性能创建索引语法:
在预侦听(ean)上创建索引idx_ean
https://stackoverflow.com/questions/11428924
复制相似问题