首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在MySQL中提高左联接查询性能?

如何在MySQL中提高左联接查询性能?
EN

Stack Overflow用户
提问于 2012-07-11 08:53:06
回答 1查看 235关注 0票数 0

我继承了一个运行Coldfusion8和MySQL 5.0.88的站点。

我有两个表-物品(A),其中包含产品信息,和价格表(P),其中包括卖方价格表。

产品在Products表中是唯一的,但可能包含在价格表中的多个条目(取决于价格表的数量)。

在我的产品搜索中,我需要从A获得产品信息,如果用户被卖方指定了价格表,我还需要从P中的相应价格表中获取价格。

在进行实际产品查询之前,我正在预编译所有sellerID和价格表名称,如下所示:

代码语言:javascript
运行
复制
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秒。

问题

用不同类型的语法能更快地做到这一点吗?

谢谢你帮忙!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-11 08:57:31

为什么不对列进行索引,以获得更好的性能创建索引语法:

在预侦听(ean)上创建索引idx_ean

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11428924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档