Почему этот код медленнее? - PullRequest
       8

Почему этот код медленнее?

1 голос
/ 24 февраля 2011

Просто обновляю мой код, чтобы он был готов к Rails 3, однако я столкнулся с серьезной проблемой производительности с кодом ниже.

Старый код (красиво и быстро)

@products = Product.all(
                        :order => 'name',
                        :include => [:category, :brand, :merchant]
                       ).paginate(:page => params[:page])

Новый код (в 10 раз медленнее)

@products = Product.order("name")
                   .includes([:category, :brand, :merchant])
                   .paginate(:page => params[:page])

Я добавил разрывы строк для удобства чтения.

Я использую Postgres для своей БД, может, в этом проблема?

Будем весьма благодарны за любые другие советы по улучшению этого кода!

Ответы [ 2 ]

1 голос
/ 24 февраля 2011

Я бы проверил выведенный SQL (из журналов или консоли), чтобы увидеть, изменилось ли что-то и / или как запрос может быть оптимизирован.

0 голосов
/ 24 февраля 2011

Может ли быть проблема с нумерацией страниц? Какой плагин вы используете для нумерации страниц? Возможно, вы захотите попробовать Каминари.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...