我有一个Rails应用程序,目前正在大规模遇到性能问题。我在后端使用Rails 4和MySQL。
我有一个名为Coaches的模型,我想对我的回答进行分组,以便它只向教练发送不同的电子邮件。
这是一个例子:Coach.group(:email)
但是,当我在生产工作负载中使用此代码时,Active Record生成结果所花费的时间太长,请参见下文。
Coach Load (193743.7ms) SELECT `coaches`.* FROM `coaches` WHERE `coaches`.`deleted_at` IS NULL GROUP BY `coaches`.`email`
我在教练表中的email和delete_at列上都有一个索引。
过去有人遇到过类似问题吗?
最佳答案
您还需要在indexing
列上应用deleted_at
,并且一种正确的解决方案是使用分页(例如以限制格式使用数据)在这种情况下将为您提供帮助。