Package: odoo14-addon-product-order-noname
This module improves retrieving products when a language is installed and configured.
The default behaviour is to order products by name, which in this case would be slow
because Odoo will process the product’s name to translate it.Warning: This changes the way products are ordered
product are ordered “default_code, id”
instead of “default_code, translated(name), id”Because Odoo needs the following query to get a translated(name)SELECT "product_product".id
FROM   "product_product"
LEFT JOIN "product_template" AS "product_product__product_tmpl_id"
    ON ( "product_product"."product_tmpl_id" =
        "product_product__product_tmpl_id"."id" )
LEFT JOIN (SELECT res_id,
                    value
            FROM   "ir_translation"
            WHERE  type = 'model'
                    AND name = 'product.template,name'
                    AND lang = 'es_MX'
                    AND value != '') AS
            "product_product__product_tmpl_id__name"
    ON ( "product_product__product_tmpl_id"."id" =
                    "product_product__product_tmpl_id__name"."res_id" )
WHERE  ( "product_product"."active" = true )
ORDER  BY "product_product"."default_code",
        Coalesce("product_product__product_tmpl_id__name"."value",
        "product_product__product_tmpl_id"."name"),
        "product_product"."id"
LIMIT  10Using a production database executing this query the result is:Planning Time: 1.088 msExecution Time: 1027.282 msTotal Time: 1028.37 msIt is so slow.Using the new order: “default_code, id” the following query is executed now:SELECT "product_product".id
FROM   "product_product"
WHERE  ( "product_product"."active" = true )
ORDER  BY "product_product"."default_code"
LIMIT  10The new result is:Planning Time: 0.095 msExecution Time: 0.529 msTotal Time: 0.624 msIt is 1.65k times fasterIt is because the fieldnamehas the parametertranslate=TrueSo, It will process the original value to translate itThen, It will order by a column computed on-the-fly of other tablesdefault_code is a column indexed so the result is fasterOpening the/shoppage could consume 7.5s instead of 1.2s without this moduleOdoo is using the _order parameter even if you don’t need it.products.search(...).write(...)browse().*2many_product_ids.idsMore info about this on:https://github.com/odoo/odoo/pull/61618Table of contentsUsageBug TrackerCreditsAuthorsContributorsOther creditsMaintainersUsageJust by installing the module you should see a performance increase when retrieving products, from the website shop
or the product’s list view for example.Bug TrackerBugs are tracked onGitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomedfeedback.Do not contact contributors directly about support or help with technical issues.CreditsAuthorsVauxooContributorsWilliams Estrada <williams@vauxoo.com>https://www.vauxoo.com/Moises Lopez <moylop260@vauxoo.com>https://www.vauxoo.com/Other creditsThis module was created and is maintained by:Vauxoo, S.A. de C.V.MaintainersThis module is maintained by the OCA.OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.Currentmaintainers:This module is part of theOCA/product-attributeproject on GitHub.You are welcome to contribute. To learn how please visithttps://odoo-community.org/page/Contribute.