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