Избегайте запросов select * в meta_search - PullRequest
3 голосов
/ 25 октября 2011

Я использую meta_search gem на сайте rails 3 и обнаруживаю некоторые проблемы с производительностью при запросах select *, генерируемых meta_search, извлекающих поля BLOB в схеме БД.Я не хочу мигрировать базовую схему для решения этой проблемы.Есть ли способ включить / исключить определенные поля из поискового запроса, которые генерируются meta_search?

1 Ответ

0 голосов
/ 08 ноября 2012

Механизм для определения того, какие поля возвращаются в запросе в Rails Active Record, - .select(...), который по умолчанию равен *.Проверьте этот SO-ответ , чтобы определить способ определения области по умолчанию, который включает все, кроме одного поля.

Однако предупреждение об этом заключается в том, что вам необходимо переопределить область по умолчаниюкогда вы хотите записать в таблицу - когда вы используете .select, поля доступны только для чтения.

Я использую преемника meta_search под названием ransack , и учитывая, насколько блестящим является его автор Эрни Миллер, есть вероятность, что для этого есть встроенный способ: -)

Блобы казались такой хорошей идеей, когда я впервые начал их использовать ... но, не так уж много.

...