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