gpt4 book ai didi

带组的mysql计数运行速度很慢

转载 作者:可可西里 更新时间:2023-11-01 09:03:39 25 4
gpt4 key购买 nike

我有以下表格 awarded_companies , tenders , grants .

有2个多对多关系

  1. awarded_companies <-> tenders
  2. awarded_companies <-> grants

我想列出属于招标的所有中标公司。

所以查询看起来像这样:

SELECT awarded_companies.*
FROM awarded_companies
JOIN awarded_company_tenders ON (awarded_company_tenders.awarded_company_id = awarded_companies.id)
GROUP BY awarded_companies.id

实际上我有很多记录,需要对结果进行分页。当我尝试计算所有 awarded_companies属于 tender查询需要 30 秒。

这里有两种计算行数的方法和 EXPLAIN EXTENDED 的一些基准:

  1. Count with subquery
  2. Count distinct

我唯一能想到的就是在 awarded_companies 中添加 2 个标志- 判断公司是否属于tender其次判断公司是否属于grant .

这样我就可以删除 joingroup by查询将如下所示:

SELECT * FROM awarded_companies WHERE has_tender=1

谁能帮我解决这个问题?

最佳答案

SELECT 计数 (awarded_companies.id)来自 awarded_companies加入 awarded_company_tenders ON (awarded_company_tenders.awarded_company_id = awarded_companies.id)GROUP BY awarded_companies.id

关于带组的mysql计数运行速度很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35614272/

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