mysql - Active Record 性能问题

标签 mysql ruby-on-rails activerecord

我有一个 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/

相关文章:

mysql - 当没有特定日期、月份的数据时,累积查询不起作用

Mysql:获取多个外键命中条件的数据

ruby-on-rails - Ruby on Rails 教程 9.2.3 友情转发报错

ruby-on-rails - Rails 4 + 多键关联

ruby-on-rails - ActiveRecord 返回每个用户的最新记录(唯一)

ruby-on-rails - 在 Rails 中,如何运行加载 rails 环境的脚本?

php - Doctrine 查询生成器未给出所有结果 : many-to-many searching id in (x, y)

mysql - 对表的列求和

ruby-on-rails - Rails:重定向到当前路径,但不同的子域

ruby-on-rails - 带参数回调后的 aasm