2
Использование Rails 3.2, Ruby 1.9, will_paginate. У меня есть 100000 записей, и протестировали следующие запросы:Запрос на сортировку или заказы Rails медленный
# 1000+ms to load
@shops = Shop.where(:shop_type => @type).paginate(:include => :photos, :page => params[:page], :per_page => 25, :order => 'created_at DESC')
# 1000+ms to load
@shops = Shop.paginate(:include => :photos, :page => params[:page], :per_page => 25, :order => 'created_at DESC')
# 1000+ms to load
@shops = Shop.order('created_at DESC').limit(25)
# 1+ms to load
@shops = Shop.paginate(:include => :photos, :page => params[:page], :per_page => 25)
я заметил, что вариант order
невероятно медленно. Результаты тестов показывают, что will_paginate
не проблема.
Как его изменить, чтобы запрос с order
можно было ускорить.
Добавить индекс в колонке заказов? – apneadiving
@apneadiving Мысль об этом. Все, что может быть отсортировано/упорядочено, должно быть проиндексировано? – Victor
Только если вы хотите быстро. Индексы довольно дешево сравнительно. – railsdog