Como agregar índices en Odoo

Gustavo Orrillo
- 07/09/2019 - 1 min. de lectura

Los indices en la base de datos permiten mejorar la performance de una aplicación (algo bastante obvio a esta altura). Ahora, como podemos usar los índices de la base de datos para mejorar la aplicación de Odoo? Hay dos opciones, la primera es agregarlo con sentencia de SQL. Por ejemplo, con el psql podemos agregar un indice en la tabla res_partner (de contactos) en el campo email (para indexar el campo de email y agilizar las búsquedas por dicho campo. Para ello en el psql (o pgadmin4, la herramienta que prefiera) debemos ejecutar la siguiente sentencia:

CREATE INDEX IDX_RES_PARTNER_EMAIL ON RES_PARTNER(EMAIL)

Y eso genera el índice. Ahora, si queremos crear un índice en un campo nuevo en mi desarrollo, podriamos hacerlo así en la definición del campo en el módulo:

nuevo_campo = fields.Char('Nuevo campo',index=True)

Lo que creará un índice del tipo b-tree en el campo nuevo_campo del modelo con el que estoy trabajando.

Por último, crear índices a lo loco puede empeorar la performance en lugar de mejorarla. Por ejemplo durante la inserción y la actualización de datos. Y la creación de índices no significa que los mismos van a ser usados durante la ejecución de las consultas. Para ello tendrán que monitorear la ejecución de las consultas en su base de datos, pero eso es tema para otro post.

Acerca de:

Gustavo Orrillo

Passionate about programming, he has implemented Odoo for different types of businesses since 2010. In Moldeo Interactive he is a founding Partner and Programmer; In addition to writing on the Blog about different topics related to the developments he makes.