【发布时间】:2020-01-22 14:04:22
【问题描述】:
我必须从包含 3000 万行的表中提取数据。 表中的特征是visits_id(primary)survey_id company_id
我必须计算每家公司的每次调查的访问次数,因为我知道一家公司可以进行多项调查。
我的查询是:
SELECT v.survey_id, v.company_id, COUNT(*)
FROM visit AS v
GROUP BY v.survey_id, v.company_id
主要问题是它需要很长时间。无论如何优化查询? 还是 SQL 做不到或不值得付出努力?
【问题讨论】:
-
您使用的是哪个 dbms?
-
请标记您的数据库并准确告诉我们需要多长时间。如果您按月报告计数,则将表拆分为每月表并将计数存储到另一个表中以供以后用于报告可能是有意义的。
-
我们有一个 MySQL 数据库。只需要 25 秒就可以在没有 GROUP BY 的情况下创建一个简单的 SELECT COUNT(*)。