我的查询需要花费几分钟才能运行,我正在尝试查看是否有方法对其进行优化,或者是否需要将其分解为不同的查询。
没有展示整个怪物,其实质是:
SELECT
u.id,
u.email,
(select count(*) from photos where u.id = user_id) as num_of_photos,
(select count(*) from activity_log where type = 1 and u.id = user_id) as num_logins,
(select count(*) from activity_log where type = 4 and u.id = user_id) as num_help_views,
(select count(*) from activity_log) as activity_rating
FROM
user as u
ORDER BY activity_rating DESC
大约有20个子选项可以提取每个用户的不同数据,最终输出到CSV报告。
到目前为止,数据库中只有几千个用户,查询不切实际。是否可以进行任何优化?
答案 0 :(得分:0)
我的猜测:activity_log和其他子表上没有索引。