From d346cd1ec221fc9b07ee8735d0356c3c2a4b5be0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Voet=20=28ryv=29?= Date: Mon, 21 Dec 2020 13:17:28 +0000 Subject: [PATCH] [IMP] mrp: add index on `bom_id` for byproduct The `bom_id` field has a One2many inverse `byproduct_ids` then it should by index to avoid bottleneck if byproduct is highly used by a lot of different BoM Performance improvements: When there is 20K of Byproduct line, read a BoM is x1.8 faster. task-2389380 --- addons/mrp/models/mrp_bom.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/mrp/models/mrp_bom.py b/addons/mrp/models/mrp_bom.py index 388e2ff1a2c..bf48820fcc6 100644 --- a/addons/mrp/models/mrp_bom.py +++ b/addons/mrp/models/mrp_bom.py @@ -432,7 +432,7 @@ class MrpByProduct(models.Model): 'Quantity', default=1.0, digits='Product Unit of Measure', required=True) product_uom_id = fields.Many2one('uom.uom', 'Unit of Measure', required=True) - bom_id = fields.Many2one('mrp.bom', 'BoM', ondelete='cascade') + bom_id = fields.Many2one('mrp.bom', 'BoM', ondelete='cascade', index=True) allowed_operation_ids = fields.Many2many('mrp.routing.workcenter', compute='_compute_allowed_operation_ids') operation_id = fields.Many2one( 'mrp.routing.workcenter', 'Produced in Operation', check_company=True,