我有一个ActiveRecord查询,有时需要一分钟才能完成。我试图找到优化它的方法,但不确定从哪里开始。
我有以下代码:
UserPlacement.notified.select('COUNT(responded_at) / COUNT(*)')
翻译过来就是:
SELECT Count(responded_at) / Count(*)
FROM `user_placements`
WHERE `user_placements`.`deleted_at` IS NULL
AND ( `user_placements`.`notification_sent` IS NOT NULL )
AND `user_placements`.`user_id` = 1
user_placements
表索引:
index_user_p_campaign_unique, ["placement_campaign_id", "user_id"]
fk__user_placements_tuser_id, ["user_id"]
我应该执行哪些步骤来分析和提高此查询的性能?
1条答案
按热度按时间sqyvllje1#
如果这还不够:
你可以通过一个“覆盖指数”来获得更好的性能: