From: | Diego <mrstephenamell(at)gmail(dot)com> |
---|---|
To: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
Cc: | "Carlos T(dot) Groero Carmona" <ctonetg(at)gmail(dot)com>, Lista PostgreSql <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Adicionando data con COPY |
Date: | 2019-11-07 14:38:56 |
Message-ID: | dfe6ba50-66ce-ddb3-5845-d7ecec523677@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
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.
>
From | Date | Subject | |
---|---|---|---|
Next Message | Carlos T. Groero Carmona | 2019-11-07 15:51:10 | Re: Adicionando data con COPY |
Previous Message | Alvaro Herrera | 2019-11-07 12:45:34 | Re: Adicionando data con COPY |