On May 5, 12:24 pm, Avishai
<avishai.we...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:> Hi everyone,
>
> So I have this app that I built which originally only needed to
> support one site, and it runs quite fast. Now I added the ability to
> run multiple sites on the same app, similar to how wordpress.com and
> Posterous run multiple different sites with different domains and
> content on the same software. However, since adding a Site model and
> it''s associations, the app is much, much slower. Using EXPLAIN I
can
> see that the additional JOINs are causing bottlenecks, and I''m
having
> trouble figuring out what the best indexing and lookup strategy is.
> Download objects can appear in 1 or more sites.
>
So what are the queries that are slow and what do they / their explain
plan look like ?
Fred> The models go like this:
>
> class Site < ActiveRecord::Base
> has_and_belongs_to_many :downloads
> end
>
> class Download < ActiveRecord::Base
> acts_as_taggable
> has_permalink :title
> belongs_to :category
> has_and_belongs_to_many :sites
> end
>
> require ''ancestry'' # uses ancestry gem for
hierarchieshttps://github.com/stefankroes/ancestry
> class Category < ActiveRecord::Base
> has_permalink :name, :permalink
> has_ancestry
> has_many :downloads
>
> def to_s
> path.map { |cat| cat.name }.join(" > ")
> end
> end
>
> # application_controller.rb
> def set_site
> @site = Site.first(:conditions => {:domain => request.domain})
> # do some other stuff like set up some site-wide titles, logos, etc.
> end
>
> Also, I want to be able to show only the categories that contain
> active download objects for a particular site.
>
> Can anyone help me figure out what the best way to go about this is?
>
> Thanks!
>
> Avishai
--
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.