Hi
I tested to remove the .order(...) part and indeed, the query time goes
down to ~100ms. However, it doesn't help to add indices, at least not as I
did :)
add_index :categories, :name
add_index :subcategories, :name
Did some more testing and if I keep the .order... but don't join the
products table I get a query that runs at about ~55ms. So the bottleneck
seems to be the products table.
The query that I'm running looks like this:
Category.eager_load(:subcategories)
.joins("INNER JOIN products AS p ON resellercategories.id =
p.resellercategory_id")
.order("categories.name ASC, subcategories.name ASC")
(Skipping the gender here...)
What I have is Categories and Subcategories. They are related to each other
through a Resellercategories table. Products are related to
Resellercategories.
So, the reason that I want to join the products as well is because I only
want to show categories and subcategories that actually have some products
(there are some empty categories/subcategories still).
So the above query is what we came up with in another thread here in the
group.
- Maybe there is a better way to check if a category/subcategory has
products without joining the entire products table?
BTW, in my dev database there is about 8700 rows in products table, 2200
rows in resellercategories, 5 rows in categories and 45 rows in
subcategories.
--
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/rubyonrails-talk/-/1AqHbcGn9n8J.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.