проблема производительности activerecord - PullRequest
0 голосов
/ 02 августа 2011

Запрос ниже создает проблемы в героку.Это занимает слишком много времени, чтобы ответить, и иногда это вызывает ошибку приложения, так как у heroku есть предел времени ожидания 30 секунд.Любая помощь будет оценена.

@entries = Entry.where(:created_at => Time.now-2.day..Time.now).joins("left join training_entries on training_entries.entry_id = entries.id").where(:training_entries => { :entry_id => nil}).order('entries.created_at DESC')



  ←[1m←[36mEntry Load (523.0ms)←[0m  ←[1mSELECT `entries`.* FROM `entries` left join training_entries on training_entries.entry_id
 = entries.id WHERE `training_entries`.`entry_id` IS NULL
 AND (`entries`.`created_at` BETWEEN '2011-07-31 21:00:00' AND '2011-08-02 21:00:00') ORDER BY entries.created_at DESC LIMIT 1
0 OFFSET 0←[0m

1 Ответ

2 голосов
/ 02 августа 2011
  • Индексировать столбец created_at в таблице entries
  • Индексировать столбец entry_id в таблице training_entries.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...