Je dois rendre environ 2500 catégories (y compris les catégories imbriquées - en utilisant la gemance d'ancêtre) et les produits comptent dans chacune de ces catégories.Temps de réponse faible lors du comptage des produits dans les catégories
Quelque chose comme ce qui suit:
Il faut beaucoup de temps pour charger la page en raison de cela. J'itérer 5 listes (5 catégories de niveau en profondeur) et utiliser le code suivant pour compter les produits dans une catégorie (il somme toujours les produits de la catégorie actuelle et aussi tous ceux imbriqués):
<%= Product.includes(:category).where(:id => @filter_product_ids, categories: {:id => Category.find(root['id']).subtree_ids }).count %>
Y at-il manière comment accélérer cela? À l'heure actuelle, je n'utilise que 200 catégories et 10 000 produits (500 000 attendus) et il faut 30 secondes pour charger la page avec seulement 10 000 produits.
Merci, Miroslav
SOLUTION
compteur de cache: https://github.com/magnusvk/counter_culture
Merci Andy. En fait, j'ai regardé dans la console et vu beaucoup de requêtes SQL, donc je cherchais un moyen de le réduire et heureusement pour mes fins, j'ai trouvé une bonne solution gem counter counter (https://github.com/magnusvk/counter_culture). Maintenant, il fonctionne beaucoup plus vite. – Miroslav
Caching est certainement une bonne idée aussi; Lorsque vous devez réellement faire la requête SQL, les index appropriés augmenteront également les performances. –