gpt4 book ai didi

mysql - 如何高效地一次获取数据并统计行数?

转载 作者:行者123 更新时间:2023-11-29 21:41:52 24 4
gpt4 key购买 nike

假设您有一个包含数百万条记录的表 - 让我们将每条记录称为“”。该表有一些列,其中包括一个 bool 列 - 我们称之为 isProcessed - 以及一个包含处理该项目的工作人员的电子邮件地址的列 - 我们称之为 worker .

假设, worker John Smith (john.smith@example.org) 调用一个事件,该事件应返回(1)所有未处理的项目 (isProcessed = false)一方面是(2) John 处理的项目数量,另一方面是。

我的第一个想法是简单地执行两个查询,一个获取项目,第二个查询计算 John 处理的所有项目。

但这似乎效率相当低,因为我需要对所有数百万条记录进行两次迭代。我还可以迭代每一行并同时检查 isProcessedworker 两列,这样我就不会运行该表两次。

就代码性能而言,SQL 中哪种方法更高效?或者更一般地说,推荐哪种方法?

最佳答案

您可以在一个查询中完成此操作:

select count(*) as NumProcessed, sum(isProcessed = 0) as NumUnprocessed
from t
where worker = 'john.smith@example.org';

关于mysql - 如何高效地一次获取数据并统计行数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34427907/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com