跳转到主要内容

加快产品检索

项目描述

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

此模块改进了在安装和配置语言时的产品检索。默认行为是按名称排序产品,在这种情况下可能会很慢,因为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 状态页面