0

我在mysql中有这样的查询

select count(*) 
from (
    select count(idCustomer)
    from customer_details 
    where ... 
    group by idCustomer having max(trx_staus) = -1 
) as temp

因此,基本上找到满足某些条件(一个或两个)且最大交易状态 = -1(其他可以是 2、3、4)的客户数量。但是这个查询在我的本地机器上大约需要 30 分钟,在高配置服务器上大约需要 13 秒(大约 20 GB 内存和 8 核处理器)。我在表中有 13 行。我知道 group by 和 max 功能太昂贵了。我能做些什么来优化这个查询。有什么建议吗?

4

1 回答 1

0

内部查询必须检查所有行以确定聚合最大值;如果您想对此进行优化,请将包含最大值的计算字段添加到您的客户表中并在其上进行选择。

诀窍是使该字段保持最新:)

于 2012-05-27T14:27:53.123 回答