967e0f7982d87c4b87485305df3f2cfc180c5476
alias_full_name
Description: Since https://github.com/odoo/odoo/pull/76734, the new field `alias_full_name` is used in addition to `alias_name` to search on `mail.alias` and route emails in `message_route`. It's also used as a search criteria in `_search_alias_email` on `mail.alias.mixin. optional`. The issue is that the table `mail.alias` can grow quite large, and only the old field `alias_name` has an index on it, which may not be selective enough, forcing Seq.Scans on the table with possibly millions of records. The impact is noticeable on `message_route` which is a hot path for processing incoming emails. Adding an index on `alias_full_name` allows PostgreSQL to do an bitmap OR scan on the two indexes, considerably speeding up search criteria that are a disjunction between `alias_name` and `alias_full_name`. Benchmark: For domain ```python [ '&', ('alias_model_id', '!=', reply_model_id), '|', ('alias_full_name', 'in', email_to_list), '&', ('alias_name', 'in', email_to_localparts), ('alias_incoming_local', '=', True), ] ``` with test arguments, on a `mail.alias` table containing over 2M records. | | Before | After | |-----------|--------|-------| | Timing | 696ms | 1ms | | Buffer IO | 790MB | 48KB | Specially impactful as those gains needs to be multiplied by the frequency of the searches. Reference: task-3724844 closes odoo/odoo#156237 Signed-off-by: Olivier Dony (odo) <odo@odoo.com>
…
…
…
Odoo
Odoo is a suite of web based open source business apps.
The main Odoo Apps include an Open Source CRM, Website Builder, eCommerce, Warehouse Management, Project Management, Billing & Accounting, Point of Sale, Human Resources, Marketing, Manufacturing, ...
Odoo Apps can be used as stand-alone applications, but they also integrate seamlessly so you get a full-featured Open Source ERP when you install several Apps.
Getting started with Odoo
For a standard installation please follow the Setup instructions from the documentation.
To learn the software, we recommend the Odoo eLearning, or Scale-up, the business game. Developers can start with the developer tutorials
Languages
Python
49.6%
JavaScript
47.8%
SCSS
2%
CSS
0.3%
HTML
0.2%