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


Reply via email to