我在Mysql脚本中遇到了这行代码我试图优化(脚本运行需要7个多小时)。我发现这条线占执行时间的60%以上。
# #Fill temp table
SELECT
DISTINCT clv_temp(view01.user_email,,user_number) AS `Authentic`
FROM(
SELECT DISTINCT u_mail, u_phone
FROM
Cust_orders
ORDER BY order_date ASC
)view01;
答案 0 :(得分:3)
过度运行时可能在自定义函数clv_temp
的定义中,因此您需要找到它的定义。
请注意,目前正在为子查询返回的每一行运行此函数 - 即u_mail
表中u_phone
和cust_orders
的每个唯一组合。这通常是处理数据的一种非常低效的方式,您可能需要做的是以设置方式实现当前由clv_temp
执行的逻辑,而不是一次实现一行。