Re: Update concurrente

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: Silvio Bravo Cadó <bravocado(at)gmail(dot)com>
Cc: postgre sql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Update concurrente
Date: 2019-12-05 19:07:20
Message-ID: 20191205190720.GA32024@alvherre.pgsql
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Silvio Bravo Cadó escribió:

> Espero se encuentren muy bien, les escribo porque tengo una duda con
> respecto a si estoy realizando bien las actualizaciones en una tabla o tal
> vez sea algo del diseño de la solución.
> Tengo una tabla A que busca llevar el inventario de productos, que podría
> describirse así:
>
> Id int
> nombre text
> precio numeric(8,2)
> cantidad int
> disponibilidad int

Obviamente, puede haber un máximo de una transacción que esté
modificando un mismo registro concurrentemente. Pero eso no importa si
las transacciones son cortas (como deberían ser).

> El problema es que estas tablas pueden tener mucha concurrencia, muchos
> usuarios finales intentando comprar y por temporalidad compran el mismo
> producto y cuando hay picos de usuarios el update puede llegar a tardar
> hasta 60 segundos o mas en completarse.

Define "mucha concurrencia". ¿Tu base de datos tiene una cantidad de
compras simultáneas que harían a Amazon o AliExpress mirar tu
implementación con interés? De no ser así, tengo muchas dudas de que tu
nivel de concurrencia realmente sea un problema.

Si las transaccioens duran 60 segundos, tu problema está en otra parte,
no en la serialización de los updates.

> Mi duda es si hay alguna forma de mejorar el rendimiento de este update.

Sí, la hay.

--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Horacio Miranda 2019-12-06 03:53:14 Re: Update concurrente
Previous Message Olivier Gautherot 2019-12-05 18:45:41 Re: Update concurrente