Есть ли способ улучшить мою Ruby в Rails нетерпеливую загрузку? - PullRequest
0 голосов
/ 11 июля 2020

Я работаю над страницей в моем приложении Rails, которая должна отображать информацию через множество связанных таблиц. В настоящее время этой странице требуется ~ 15 секунд для загрузки около 700 записей. и я пытаюсь оптимизировать запрос данных. В настоящее время мой запрос выглядит следующим образом:

@students = Student.includes(:school, orders: { cart: { packages: [:options, :order_packages] } })
        .where('students.school_id = ?', params[:school_id])
        .where('students.teacher like ?', '%day%')
        .where('students.grade = ?', '12')
        .order(:last_name)

Для этого запроса через метод .includes требуются глубоко вложенные ассоциации. Есть ли более эффективный способ выполнить этот запрос?

1 Ответ

3 голосов
/ 11 июля 2020

Это не похоже на проблему нетерпеливой загрузки. Вы просто запрашиваете столбцы в таблице students. Убедитесь, что эти столбцы имеют правильные индексы и что ваш запрос использует эти индексы. Убедитесь, что внешние ключи связанной таблицы имеют индексы и что они также используются для выполнения активной загрузки.

...