Оптимизировать запрос, используя ru -gem-действие-as-taggable-on

Я использую в своем проекте gem акт-as-taggable-on. Однако для загрузки всех тегов требуется около 80-х годов.

Я добавил нетерпеливую загрузку в run_controller, но она не работает. Вот кусок кода:

def index
  @runs = Measurement.includes(:tags).order( "run_name DESC" ).group( :run_name )#.descending #.order_by( :run => 'desc' )
  respond_to do |format|
    format.html # index.html.erb
    format.json  { render :json => @runs }
  end
end

Я использую tag_list, который поддерживается Act-as-Taggable-On, для отображения тегов. Таким образом, использование активной загрузки измерений не влияет на производительность. Следующие две проблемы связаны со стековым потоком: act_as_taggable_on: как оптимизировать запрос?2. Оптимизация запросов с acts_as_taggable_on

Я посмотрел на файл журнала и обнаружил, что самая затратная часть загружает теги, как

ActsAsTaggableOn::Tag Load (69,9ms) SELECT tags.* ОТ tags ВНУТРЕННЕЕ СОЕДИНЕНИЕ taggings НА tags,id знак равно taggings,tag_id ГДЕ taggings,taggable_id = 223866 И taggings,taggable_type = 'Измерение' И (taggings.context = 'теги' И taggings.tagger_id IS NULL)

ActsAsTaggableOn:: Загрузка тега (70,2 мс) SELECT tags.* ОТ tags ВНУТРЕННЕЕ СОЕДИНЕНИЕ taggings НА tags,id знак равно taggings,tag_id ГДЕ taggings,taggable_id = 223854 И taggings,taggable_type = 'Измерение' И (taggings.context = 'теги'

Он получил тысячи запросов для загрузки тега, и каждый запрос стоил около 0,07 с. Эти следующие коды используются для отображения тегов.

= form_for (run), :remote => true, :method => :put,  :html => { :class => "myform"} do |f|
  =f.text_field :tag_list, :class => "tags"

Любая помощь? Благодарю.

2 ответа

Я только что столкнулся с этим сегодня. Вы можете загружать через tags ассоциация, если вы не используете tag_list метод.

Упоминается здесь и здесь

Рассмотрели возможность перехода на https://github.com/tmiyamon/acts-as-taggable-array-on. Вам нужно будет использовать postgres в качестве базы данных.

Взгляните на этот http://adamnengland.wordpress.com/2014/02/19/benchmarks-acts-as-taggable-on-vs-postgresql-arrays

Другие вопросы по тегам