
在理论上来说GROUP BY 1,2 和 GROUP BY 列名的效率是相同的。因为它们都是对相同的列进行分组操作。而且实际上 MySQL 的优化器通常会将这两种写法优化成相同的执行计划。所以如果后面遇到类似的解法大家为了省事可以直接写 GROUP BY 1,2 会更快。GROUP BY 1,2 是使用列的位置第一列和第二列进行分组而 GROUP BY 列名 是使用列的名称进行分组。在实际操作中MySQL 优化器会将列的位置或名称映射到实际的列并在执行计划中选择最有效的方式进行分组。在小规模数据集的情况下两者的性能差异几乎没有。但在大规模数据集例如百万甚至千万数据集以上特别是当有索引可用时MySQL 优化器可能会根据 索引的情况 选择更有效的方式进行分组。因此一般来说使用哪种方式的 GROUP BY 在性能上没有显著差异。当然我们在实际生产和查询过程中还是要注意实际的性能取决于数据库管理系统的实现和优化器的行为通常我们可以通过实际的性能测试来验证。以上就是今天的全部分享内容在这里留个小思考题给大家大家觉得以下三种写法是否在性能执行上有区别● SELECT actor_id, director_id FROM ActorDirector GROUP BY 1,2 HAVING COUNT(timestamp) 3;● SELECT actor_id, director_id FROM ActorDirector GROUP BY 1,2 HAVING COUNT(1) 3;● SELECT actor_id, director_id FROM ActorDirector GROUP BY 1,2 HAVING COUNT(*) 3;如果你觉得有说出你的看法欢迎大家评论区留言探讨如果大家想要看那个存储过程是如何写的也可以评论区留言。