Le 12 août 2014 22:09, Christophe Merlet <[email protected]> a écrit :

> Le 12/08/2014 21:38, Christian Quest a écrit :
> > Le 12 août 2014 21:07, Christophe Merlet <[email protected]
> > <mailto:[email protected]>> a écrit :
> >
> >     Le 12/08/2014 20:44, Christian Quest a écrit :
> >     > Ah bon, postgres n'essaye pas de faire un update "sur place" quand
> >     c'est
> >     > possible ?
> >
> >     Non. UPDATE étant une opération de type DELETE/INSERT (
> >     http://postgresql.todaysummary.com/q_postgresql_32709.html )
> >
> >
> > Marrant je n'ai pas la même lecture que toi... je ne vois pas de
> > référence au DELETE dans ces explications, juste une proposition pour
> > faire l'équivalent du REPLACE de mysql qui fait soit un INSERT soit un
> > UPDATE si la ligne existe déjà.
>
>
> Ho zut, je me suis trompé de lien oO rien à voir !!
> C'est celui là
>
> http://www.postgresql.org/message-id/482e80323a35a54498b8b70ff2b879800458c31...@azsmsx504.amr.corp.intel.com
>
>
Mouais... un peu courte l'explication.

UPDATE est équivalent à DELETE+INSERT vu d'en haut, mais vu d'en bas ça
m'étonnerai beaucoup que ça soit géré comme ça... show me the code ;)


C'est comme ça que je comprend la doc
>  http://www.postgresql.org/docs/current/static/sql-vacuum.html
>
> "VACUUM reclaims storage occupied by dead tuples. In normal PostgreSQL
> operation, tuples that are deleted or obsoleted by an update are not
> physically removed from their table; they remain present until a VACUUM
> is done. Therefore it's necessary to do VACUUM periodically, especially
> on frequently-updated tables."


Ok, un DELETE ou UPDATE peuvent laisser des trous, VACCUM les élimine.
Pour ça VACUUM va prendre des data en fin de fichier et les déplacer dans
les trous au fur et à mesure de son scan en remettant à jour les index vu
le déplacement des données. C'est ce que j'ai lu je ne sais plus où :(
VACUUM FULL procède autrement, il crée une copie de la table en recopiant
les tuples un à un sans recopier les trous.

-- 
Christian Quest - OpenStreetMap France
_______________________________________________
dev-fr mailing list
[email protected]
https://lists.openstreetmap.org/listinfo/dev-fr

Répondre à