我需要渲染大约2500个类别(包括嵌套类别 - 使用祖先宝石)和每个类别中的产品计数。
如下所示:
由于这个原因,加载页面需要很长时间。我迭代了5个列表(深度为5个级别)并使用以下代码来计算类别中的产品(它总是将当前类别的产品和所有嵌套的产品相加):
<%= Product.includes(:category).where(:id => @filter_product_ids, categories: {:id => Category.find(root['id']).subtree_ids }).count %>
有什么方法可以加快速度吗?现在我只使用200个类别和10 000个产品(期望50万个),加载页面只需要10 000个产品需要30秒。
谢谢你, 米罗
答案 0 :(得分:0)
您需要查看针对数据库运行的SQL并为这些列创建索引。看起来您正在对产品表进行表扫描;索引会大大加快速度。