Comments 13
про подгрузки ассоциаций — не знал, спасибо.
"… можете отключить сессии..." исправьте, пожалуйста.
"… можете отключить сессии..." исправьте, пожалуйста.
Partical -> Partials
А почему вы не указываете, что это топик-перевод? Оригинал вот тут: 3 simple tips to make your Rails app 100 times faster
Само лучшие ускорение для rails приложение даёт использование haproxy. Правда нагрузку на сервер это даже несколько увеличит, но отклик реально очень сильно ускорит.
Кроме того не забывайте правильно использовать опцию :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ив нужные таблицы?
хотя, с другой стороны, если join'ов будет много и запрос будет большой, то несколько маленьких запросов могут выполнится быстрее
ага, только, если будут условия или сортировка, то снова будет использован механизм с left join'aми — api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html
P.S.> забавно с собой поговорить =)
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.> забавно с собой поговорить =)
Для новичков: вам может сильно помочь это — github.com/nkallen/cache-money/tree/master (из новья)
И, конечно, guides.rubyonrails.org/caching_with_rails.html
И, конечно, guides.rubyonrails.org/caching_with_rails.html
Sign up to leave a comment.
3 простых совета, которые сделают ваше Rails приложение быстрее, часть #2