Comments 13
про подгрузки ассоциаций — не знал, спасибо.
"… можете отключить сессии..." исправьте, пожалуйста.
"… можете отключить сессии..." исправьте, пожалуйста.
+1
Partical -> Partials
+1
А почему вы не указываете, что это топик-перевод? Оригинал вот тут: 3 simple tips to make your Rails app 100 times faster
+3
Само лучшие ускорение для rails приложение даёт использование haproxy. Правда нагрузку на сервер это даже несколько увеличит, но отклик реально очень сильно ускорит.
-1
Кроме того не забывайте правильно использовать опцию :include в ваших запросах для подгрузки ассоциаций
Post.find(:all, :include => :user)
Это сократит число запросов в 2 раза
В новых версиях (начиная с 2.1.x), такой поиск будет делаться в два запроса: сначала выборка всех
id
для модели Post
, а потом подгрузка ассоциации запросом select * from users where post_id IN (N, N, N, ..., N)
. Исключение будет только для conditions
, где используются поля из ассоциации.+1
> в два запроса
странно, почему бы не сделать в один, приjoinив нужные таблицы?
странно, почему бы не сделать в один, приjoinив нужные таблицы?
0
хотя, с другой стороны, если join'ов будет много и запрос будет большой, то несколько маленьких запросов могут выполнится быстрее
0
ага, только, если будут условия или сортировка, то снова будет использован механизм с 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.> забавно с собой поговорить =)
0
Для новичков: вам может сильно помочь это — github.com/nkallen/cache-money/tree/master (из новья)
И, конечно, guides.rubyonrails.org/caching_with_rails.html
И, конечно, guides.rubyonrails.org/caching_with_rails.html
0
Sign up to leave a comment.
3 простых совета, которые сделают ваше Rails приложение быстрее, часть #2