我在寻找优化这个mysql查询的帮助。需要超长时间才能运行,因为main_activity下的两个表都很庞大(每个超过1000万行!)。 main_db.members和main_db.customers分别是大约400K和600K行。想优化mysql查询
编辑:
基础上建议使用临时表,只是想补充一点,我正在上一个只读数据库查询,以便临时表可能是一个问题。不使用临时表可以做什么优化?
select distinct
a.members_id,
a.customer_id,
a.subscription,
a.buy_date,
from_unixtime((max(m2.sales_date)/1000), '%m/%d/%Y') as sales_date,
a.return_date,
a.signup_date,
from_unixtime((max(st.visit_date)/1000), '%m/%d/%Y') as visit_date
from (select distinct
m1.members_id,
m1.customer_id,
m1.subscription,
from_unixtime((m1.buy_date/1000), '%m/%d/%Y') as buy_date,
from_unixtime((m1.return_date/1000), '%m/%d/%Y') as return_date,
from_unixtime((c.signup_date/1000), '%m/%d/%Y') as signup_date
from main_db.members m1
join main_db.customer c on c.global_members_id = m1.members_id
) as a
left join main_db.members m2 on m2.customer_id = a.customer_id
left join main_activity.onlinevisit s on s.customer_id = a.customer_id
left join main_activity.storevisit st on st.visit_id = s.visit_id
我用最大拉最后销售日期和最后来店更换
来自其他各种表格的日期。我需要提取每种情况下的最后日期。商店访问和销售日期分配给每个客户和会员ID有几个值。其他字段不需要汇总 – user2022284
@ GordonLinoff欢迎使用MySQL;) – RedFilter
至少包含说明计划https://dev.mysql.com/doc/refman/5.0/en/using-explain.html –