查询大量行时创建有效的存储过程时出现问题

我正在尝试获取所有供应商中最重要的客户的列表,以查看我们哪些客户的订单最多。问题在于我们有大量的记录,以至于存储过程花费的时间太长,无法返回结果。

请提供任何建议。

CREATE DEFINER=`rapidws`@`%` PROCEDURE `Rapidtrade`.`Question1`()
BEGIN
    DROP TEMPORARY TABLE IF EXISTS temp_orders;

    CREATE TEMPORARY TABLE temp_orders Engine=Memory as(
    SELECT 
        a.accountID AS account,a.Name AS Customer_Name,COUNT(o.OrderID) AS TotalOrders,0 AS Totalactivities,0 AS SubTotal,0 AS MonthAgo
    FROM
        account a
            RIGHT OUTER JOIN
        Orders o ON o.accountID = a.accountID
    WHERE
        o.CreateDate > TIMESTAMPADD(HOUR,- 1,NOW())
    GROUP BY o.accountID
    ORDER BY TotalOrders DESC
    LIMIT 20);

    SELECT * FROM temp_orders;
END
abliz13 回答:查询大量行时创建有效的存储过程时出现问题

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3153045.html

大家都在问