Closed
Description
Preconditions and environment
- Magento 2.4.8
- Setup a catalog with:
- 7 root categories
- 1500 categories spread in these 7 categories
- 175k products associated randomly to several categories (around 226k link between categories and products)
Steps to reproduce
- Go in backofiice
- Click on Catalog -> Categories
- Take a coffe, a shower, look at a TVShow and come back
Expected result
Category page appears quickly
Actual result
Category page doesn't appear quickly AT ALL !
Additional information
This is due to this commit.
More precisely there is an awful subselect here in the new function getCountFromCategoryTableBulk
leading to this kind of query
SELECT `ce`.`entity_id`,
COUNT(DISTINCT cp.product_id) AS `product_count`
FROM `catalog_category_entity` AS `ce`
LEFT JOIN `catalog_category_product` AS `cp`
ON cp.category_id IN (SELECT `ce2`.`entity_id`
FROM `catalog_category_entity` AS `ce2`
WHERE ( ce2.path LIKE CONCAT(ce.path, '/%')
OR ce2.path = ce.path ))
WHERE ( ce.entity_id IN( 3, 4, 5, 6, ..., 5484, 5487, 5489, 5490 ) )
GROUP BY `ce`.`entity_id`;
killing performances.
This can be easily improved using a simple join
SELECT ce.entity_id,
COUNT(DISTINCT cp.product_id) AS product_count
FROM catalog_category_entity ce
LEFT JOIN catalog_category_entity ce2
ON ce2.path LIKE CONCAT(ce.path, '/%')
OR ce2.path = ce.path
LEFT JOIN catalog_category_product cp
ON cp.category_id = ce2.entity_id
WHERE ce.entity_id IN ( 3, 4, 5, 6, ..., 5484, 5487, 5489, 5490 )
GROUP BY ce.entity_id;
Release note
No response
Triage and priority
- Severity: S0 - Affects critical data or functionality and leaves users without workaround.Severity: S1 - Affects critical data or functionality and forces users to employ a workaround.Severity: S2 - Affects non-critical data or functionality and forces users to employ a workaround.Severity: S3 - Affects non-critical data or functionality and does not force users to employ a workaround.Severity: S4 - Affects aesthetics, professional look and feel, “quality” or “usability”.
Activity
m2-assistant commentedon Apr 17, 2025
Hi @Dnd-Mafer. Thank you for your report.
To speed up processing of this issue, make sure that the issue is reproducible on the vanilla Magento instance following Steps to reproduce.
@magento I am working on this
Join Magento Community Engineering Slack and ask your questions in #github channel.
⚠️ According to the Magento Contribution requirements, all issues must go through the Community Contributions Triage process. Community Contributions Triage is a public meeting.
🕙 You can find the schedule on the Magento Community Calendar page.
📞 The triage of issues happens in the queue order. If you want to speed up the delivery of your contribution, join the Community Contributions Triage session to discuss the appropriate ticket.
Dnd-Mafer commentedon Apr 17, 2025
Here is the patch for Magento Open Source
[-]Backoffice category tree is incredibly long to be displayed in 2.4.8[/-][+]Backoffice category tree takes an incredibly long time to display in 2.4.8[/+]m2-assistant commentedon Apr 17, 2025
Hi @engcom-Bravo. Thank you for working on this issue.
In order to make sure that issue has enough information and ready for development, please read and check the following instruction: 👇
Area: XXXXX
label to the ticket, indicating the functional areas it may be related to.2.4-develop
branchDetails
- If the issue is reproducible on2.4-develop
branch, please, add the labelReproduced on 2.4.x
.- If the issue is not reproducible, add your comment that issue is not reproducible and close the issue and stop verification process here!
Issue: Confirmed
once verification is complete.engcom-Bravo commentedon May 8, 2025
Hi @Dnd-Mafer,
Thanks for your reporting and collaboration.
We have tried to reproduce the issue in Latest 2.4-develop instance with 100k products and 2000 categories with 7 root categories and we are not able to reproduce the issue.Kindly refer the attached video.
Screen.Recording.2025-05-08.at.1.56.45.pm.mov
Category page appears quickly.Could you please let us know still if we are missing anything.
Thanks.
7 remaining items