Я хотел бы использовать метод find_by_sql вместо интерфейса запроса активной записи из-за гибкости, которую я получаю при написании собственного SQL.Rails - find_by_sql vs активная запись запросов
Например,
Это считается хорошей практикой в SQL для упорядочивания таблиц в запросе от наименьшего к наибольшему. При использовании интерфейса запроса активной записи вам нужно будет начать с модели результата, которая может быть самой большой таблицей.
Я также могу легко избежать проблемы N + 1, включив целевую таблицу в самом соединении и включив необходимые столбцы из нескольких таблиц.
Я хотел бы знать, есть ли причины, по которым я не должен использовать параметр find_by_sql, особенно когда я буду писать ANSI SQL, который должен быть совместим со всеми, если не в большинстве баз данных.
Спасибо!
После работы с несколькими миллионами строк данных я решил, что не стоит тратить время на создание собственного SQL-кода для оптимизации. ActiveRecrod достаточно хорош, и то, что достаточно хорошо, работало для меня с несколькими миллионами строк данных. –
Хорошо, спасибо. Например, когда вы используете include, он создает другой SQL за кулисами с предложением IN. AFAIK, используя «где IN», предполагается создать таблицы и, следовательно, обескураживать. –