You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL单表两次统计查询合并方案及效率对比咨询

问题解答

能否合并为一条查询?

可以合并为一条查询,通过在同一个SELECT语句中同时计算两个COUNT(DISTINCT)聚合函数即可实现。合并后的SQL语句如下:

SELECT 
  COUNT(DISTINCT u_id) AS participant_user_count,
  COUNT(DISTINCT d_id) AS submitted_design_count
FROM race
WHERE yid = 1;

这条语句会一次性返回两个统计结果:参与用户数(去重后的u_id数量)和参与设计数(去重后的d_id数量)。

哪种执行效率更高?

单条合并查询的执行效率通常更高,原因如下:

  • 两条独立查询需要两次扫描race表中符合yid=1的数据集,而单条查询只需要扫描一次,减少了磁盘IO和表访问的开销。
  • 如果存在针对yid的索引(或者包含yid、u_id、d_id的覆盖索引),单条查询可以直接利用索引完成统计,避免回表操作,进一步提升效率。

不过需要注意:如果表中yid=1的数据量极小,两次查询的性能差异可能不明显,但从资源消耗和代码简洁性角度,单条查询仍是更优选择。

内容的提问来源于stack exchange,提问作者gagacode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 11:05:22