Я работаю с ОЧЕНЬ большой базой данных mysql2 на данный момент, и хотя я проиндексировал то, что я считал правильными полями, время возврата для некоторых запросов довольно медленно.Настройка производительности базы данных Rails
У меня есть две модели, вызывающие проблемы, Comment
и Commenter
.
Теперь существует связь has_many
между Commenter
и Comment
, но мой запрос зависит от нахождения имени пользователя комментария комментатора. Так что я буду работать что-то вроде этого:
c = Blog.first.comments ##this bit runs fine, I indexed the "blog_id" field on Comments
c.collect {|c| c.commenter.username}
Чтобы помочь с проблемами скорости, я создал индекс на commenter_id
поле для модели Comment. Но он все еще работает очень медленно.
Кто-нибудь знает, что я могу сделать по-другому, что поможет увеличить скорость запроса?
Я верю eager_load и включает в себя работу только для активных отношений записи. Не массивы, а в моем сообщении c - массив. – BananaNeil
Это не на самом деле - ассоциации - это отношения - вы можете определенно сделать filter_ordered_comments = some_blog.comments.where (...). Order (...) например –