Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.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 假设是真的,那么metricData和interactionData中的匹配集将形成笛卡尔积,因为它们只与主媒体集相关,而彼此不相关。这通常非常昂贵,在这种情况下提取请求的计数也不是件小事。如果您先左键连接(如metricData),然后分组并计算其计数(_Mysql_Performance_Select_Join - Fatal编程技术网

Mysql 假设是真的,那么metricData和interactionData中的匹配集将形成笛卡尔积,因为它们只与主媒体集相关,而彼此不相关。这通常非常昂贵,在这种情况下提取请求的计数也不是件小事。如果您先左键连接(如metricData),然后分组并计算其计数(

Mysql 假设是真的,那么metricData和interactionData中的匹配集将形成笛卡尔积,因为它们只与主媒体集相关,而彼此不相关。这通常非常昂贵,在这种情况下提取请求的计数也不是件小事。如果您先左键连接(如metricData),然后分组并计算其计数(,mysql,performance,select,join,Mysql,Performance,Select,Join,假设是真的,那么metricData和interactionData中的匹配集将形成笛卡尔积,因为它们只与主媒体集相关,而彼此不相关。这通常非常昂贵,在这种情况下提取请求的计数也不是件小事。如果您先左键连接(如metricData),然后分组并计算其计数(每个项目),然后左键连接到interactionData,然后分组,以计算interactionData,并对内部嵌套级别的metricData计数求和。但是重写这一点非常痛苦,因为它依赖于FROM子句中的Multiple SELECT,所以效


假设是真的,那么metricData和interactionData中的匹配集将形成笛卡尔积,因为它们只与主媒体集相关,而彼此不相关。这通常非常昂贵,在这种情况下提取请求的计数也不是件小事。如果您先左键连接(如metricData),然后分组并计算其计数(每个项目),然后左键连接到interactionData,然后分组,以计算interactionData,并对内部嵌套级别的metricData计数求和。但是重写这一点非常痛苦,因为它依赖于FROM子句中的Multiple SELECT,所以效率也不高。当其他路径探索失败时值得一试。你的意思是,在选择列表中也将子选择作为左连接写入吗?这种方法的问题通常是metricData和interactionData对于给定的projectId都可能有超过1行。(否则OP为什么会对这些表格进行计数)。如果该假设成立,那么metricData和interactionData中的匹配集将形成笛卡尔积,因为它们只与主媒体集相关,而彼此不相关。这通常非常昂贵,在这种情况下提取请求的计数也不是件小事。如果您先左键连接(如metricData),然后分组并计算其计数(每个项目),然后左键连接到interactionData,然后分组,以计算interactionData,并对内部嵌套级别的metricData计数求和。但是重写这一点非常痛苦,因为它依赖于FROM子句中的Multiple SELECT,所以效率也不高。当其他途径探索失败时,值得一试。
SELECT v.`projectID`,
(SELECT COUNT(m.`session`) 
    FROM `metricData` m
    WHERE m.`projectID` = v.`projectID`) AS `sessions`,
(SELECT COUNT(pb.`interact`)
    FROM `interactionData` pb WHERE pb.`projectID` = v.`projectID` GROUP BY pb.`projectID`) AS `interactions`
FROM `medias` v
LEFT JOIN `projectsExt` pa ON v.`projectsExtID` = pa.`projectsExtID`
WHERE (pa.`user` = '1' OR v.`ownerUser` = '1')
GROUP BY v.`projectID`
SELECT v.`projectID`
,      (
       SELECT COUNT(m.`session`) 
       FROM `metricData` m
       WHERE m.`projectID` = v.`projectID`
       ) AS `sessions`
,      (
       SELECT COUNT(pb.`interact`)
       FROM `interactionData` pb
       WHERE pb.`projectID` = v.`projectID`
       GROUP BY pb.`projectID`
) AS `interactions`
FROM ( 
    SELECT      v.projectID
    FROM medias 
    WHERE ownerUser = '1'
    GROUP BY projectID
    UNION ALL
    SELECT      v.projectID
    FROM medias v
    INNER JOIN projectsExt pa
    ON         v.projectsExtID = pa.projectsExtID
    WHERE      v.ownerUser != '1'
    AND        pa.user = '1'
    GROUP BY v.`projectID
) v