Pull to refresh

Comments 13

про подгрузки ассоциаций — не знал, спасибо.

"… можете отключить сессии..." исправьте, пожалуйста.
Спасибо, исправил
Само лучшие ускорение для rails приложение даёт использование haproxy. Правда нагрузку на сервер это даже несколько увеличит, но отклик реально очень сильно ускорит.
Самое лучше ускорение для rails — это python :)
А по правде говоря, page caching рулит.
Из перечисленных же советов реально будет давать буст только третий.
Кроме того не забывайте правильно использовать опцию :include в ваших запросах для подгрузки ассоциаций
Post.find(:all, :include => :user)

Это сократит число запросов в 2 раза

В новых версиях (начиная с 2.1.x), такой поиск будет делаться в два запроса: сначала выборка всех id для модели Post, а потом подгрузка ассоциации запросом select * from users where post_id IN (N, N, N, ..., N). Исключение будет только для conditions, где используются поля из ассоциации.
> в два запроса

странно, почему бы не сделать в один, приjoinив нужные таблицы?
хотя, с другой стороны, если join'ов будет много и запрос будет большой, то несколько маленьких запросов могут выполнится быстрее
ага, только, если будут условия или сортировка, то снова будет использован механизм с left join'aми — api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html

Since only one table is loaded at a time, conditions or orders cannot reference tables other than the main one. If this is the case Active Record falls back to the previously used LEFT OUTER JOIN based strategy.


P.S.> забавно с собой поговорить =)
Sign up to leave a comment.

Articles