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.
--
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 |