MySQL查询优化-(需要无连接)
我使用联接处理以下查询。除了使用这些计数和联接,还有其他选择吗MySQL查询优化-(需要无连接),mysql,sql,Mysql,Sql,我使用联接处理以下查询。除了使用这些计数和联接,还有其他选择吗 select ipd.data_city as city, count(distinct f.dim_ipinfo_id) as visitors, count(distinct f.dim_visit_id) as visits, count(f.dim_Pageview_id) as pageviews from fact_table f left join dim_data ipd on i
select
ipd.data_city as city,
count(distinct f.dim_ipinfo_id) as visitors,
count(distinct f.dim_visit_id) as visits,
count(f.dim_Pageview_id) as pageviews
from fact_table f
left join dim_data ipd on ipd.dim_data_id = f.dim_data_id
where f.dim_member_id = 725
group by city
在不了解目标和数据结构的情况下,很难理解。
然而,乍一看,连接似乎是必要的,因为分组是在城市字段上完成的,该字段似乎位于*dim_data*表中。
如果在*fact_table*数据中有一个引用城市的字段,则可以将其用于分组并删除连接,如果没有,则必须使用该字段。
此外,如果您不需要城市分组,您可以避免加入,但id似乎不是这样。现在需要多长时间?对于尽可能多的数据,您期望的查询时间是多少?为什么不使用联接?这是一个面试问题吗?执行这个查询需要30秒,我有超过1000万的数据行。