跳转到主要内容

加快产品检索

项目描述

Production/Stable License: LGPL-3 OCA/product-attribute Translate me on Weblate Try me on Runbot

此模块改进了安装和配置语言时检索产品的功能。默认行为是按名称排序产品,在这种情况下可能会很慢,因为Odoo将处理产品名称进行翻译。

警告:这将更改产品排序方式,产品按“default_code, id”排序,而不是“default_code, translated(name), id”

因为Odoo需要以下查询来获取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  10
在生产数据库中执行此查询的结果
  • 规划时间:1.088 ms

  • 执行时间:1027.282 ms

  • 总时间:1028.37 ms

它非常慢。

使用新的排序:“default_code, id”现在执行以下查询

SELECT "product_product".id
FROM   "product_product"
WHERE  ( "product_product"."active" = true )
ORDER  BY "product_product"."default_code"
LIMIT  10
新的结果是
  • 规划时间:0.095 ms

  • 执行时间:0.529 ms

  • 总时间:0.624 ms

它快了1.65k倍

这是因为字段 name 有参数 translate=True

因此,它将处理原始值进行翻译

然后,它将按其他表动态计算的列进行排序

default_code是一个索引列,因此结果更快

打开/shop页面可能需要7.5秒,而不是此模块的1.2秒

即使您不需要它,Odoo也会使用_order参数。
  • products.search(...).write(...)

  • browse().*2many_product_ids.ids

更多关于此的信息请参阅

https://github.com/odoo/odoo/pull/61618

目录

用法

只需安装该模块,您在从网站商店或产品列表视图等位置检索产品时就应该看到性能提升。

错误追踪器

错误追踪在GitHub Issues上。如果遇到问题,请先检查您的问题是否已被报告。如果您是第一个发现,请通过提供详细且受欢迎的反馈来帮助我们解决。

请不要直接联系贡献者寻求支持或技术问题的帮助。

致谢

作者

  • Vauxoo

贡献者

其他致谢

本模块由以下组织创建和维护:

  • Vauxoo, S.A. de C.V.

Vauxoo, S.A. de C.V.

维护者

本模块由OCA维护。

Odoo Community Association

OCA,即Odoo社区协会,是一个非营利组织,其使命是支持Odoo功能的协作开发并推广其广泛应用。

当前维护者

WR-96 moylop260 luisg123v

本模块是GitHub上的OCA/product-attribute项目的一部分。

欢迎您贡献力量。了解详情请访问https://odoo-community.org/page/Contribute

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

此版本没有提供源代码分发文件。请参阅生成分发存档的教程

构建分发

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面