Gracias Alvaro por sacarnos de esta duda. I gracias a ti Diego por ayudarnos a analizar mas aserca de este caso.
On Thu, Nov 7, 2019 at 8:39 AM Diego <mrstephenam...@gmail.com> wrote: > Muchísimas gracias por las aclaraciones Álvaro! > > Un crack, como siempre! > On 7/11/19 09:45, Alvaro Herrera wrote: > > Diego escribió: > > > Me agarra la duda en la parte de "Pero la pregunta surge porque cuando > insertamos normalmente, no se bloquea la tabla ni los indices que serian > modificados." > > Si una tabla tiene pk, y los datos a insertar caen, digamos, al final de la > pk, ocurre como decis... pero si caen el medio de la tabla...¿que pasa? > > Realmente, tendria que hacer la prueba y ver, porque no se. > > No pasa nada ... los índices btree en Postgres (los únicos que > implementan PKs) funcionan concurrentemente todo el tiempo, > independiente de dónde hagas las inserciones. Hay un montón de teoría > detrás de esto y que funcione eficientemente ... si el tema realmente te > interesa, busca el paper de Lehman y Yao de 1981 "Efficient Locking for > Concurrent Operations on B-Trees", que es la base de la implementación > de Postgres (aunque la nuestra tiene un montón de mejoras a ese diseño) > https://www.csd.uoc.gr/~hy460/pdf/p650-lehman.pdf > > Lo que si se me ocurre, es que todo esto seria fuera de una transaccion, ya > que de esar en medio de una, si tendrias bloqueos hacia las demas consultas > que esten usando la tabla de destino. > > No, eso tampoco. > > >