对于大型集合,JOIN的性能可能优于子查询。
SELECt ma.actor , COUNT(1) AS total , COUNT(1) / t.cnt * 100 AS `percentage` FROM movies_actors ma CROSS JOIN (SELECt COUNT(1) AS cnt FROM movies_actors) t GROUP BY ma.actor , t.cnt
对于大型集合,当返回很大比例的行时,JOIN操作通常可以胜过子查询。在您的情况下,它不是相关子查询,因此MySQL不必多次执行该子查询,因此它可能没有任何区别。
注意
COUNT(1)…的非粉丝,我们可以
COUNT(1)用
COUNT(*)或替换任何和所有出现的或
IFNULL(SUM(1),0)获得同等的结果。



