Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL查询优化-(需要无连接)_Mysql_Sql - Fatal编程技术网

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万的数据行。