-
- Downloads
[IMP] website: filter out unpublished records for non internal users
Issue: Search on website has a big performance issue because the database has too many product_template. Analyze : The website search mechanism has hardcoded sql query. And the generic query don't have any filtering. Which lead to make a expensive search (similarity) on the whole product_template even if the products are not published and then displayed to the user. Fix : Filter the is_published field in the generic website method when the model has a 'is_published' field and the request is not done by a user (thus for customers or portal users). Note: The internal user is still able to search on unpublished product.Thus have no performance improvement. Benchmark: | SQL Query | # Input data | Before PR | After PR | |:---------:|:------------:|:---------:|:--------:| |General best_similarity |700000 products (161 published) | 12.65 s | 0.12 s | |FROM ir_translation|2,796,000 ir_translation | 6.338 s (586k hit) | 0.091 s (185 hit) | Related task: task-3473786 Related ticket: opw-3418457 closes odoo/odoo#135814 X-original-commit: b1d14ba6 Signed-off-by:Romain Derie (rde) <rde@odoo.com>
Loading
Please register or sign in to comment