Update concurrente

From: Silvio Bravo Cadó <bravocado(at)gmail(dot)com>
To: postgre sql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Update concurrente
Date: 2019-12-05 01:46:15
Message-ID: CAE57xEB3WOVAM2+=1Qw3faN8gxYZ8V1mnfi5GgvmyW4oceMz=g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola lista,
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

Cada vez que se crea un nuevo registro se define la cantidad y la
disponibilidad que son las mismas. También se tiene un check constraint
donde cantidad >= disponibilidad.

Por otro lado cuando se tiene otra tabla B que representa las compras:

Id int
producto_id int

Cada vez que se agrega un registro en B se ejecuta un trigger que hace un
update a A para restar disponibilidad con un: UPDATE A SET disponibilidad =
disponibilidad - 1 WHERE id = New.id

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.

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

De antemano muchas gracias.

--

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Olivier Gautherot 2019-12-05 08:07:02 Re: Update concurrente
Previous Message cesar@cayter.com 2019-12-04 12:50:29 Re: Consulta sobre actualizacion