Update et effet sur les INDEX

From: Rodolphe Quiédeville <rodolphe(at)quiedeville(dot)org>
To: pgsql-fr-generale(at)postgresql(dot)org
Subject: Update et effet sur les INDEX
Date: 2014-07-03 20:58:13
Message-ID: yi74myygnx6.fsf@elz.rodo.lan
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Bonsoir,

J'ai cherché en vain ce soir des informations sur la mécanique interne à
PG lors d'un UPDATE et les effets sur les index, je cherche à mesurer
l'impact de performance entre deux requêtes, une spécifiant uniquement
la colonne à modifier et une autre indiquant toutes les colonnes même
celle qui ne sont pas modifiées.
Exemple

CREATE TABLE foo (id integer, name varchar(255), active boolean);
CREATE INDEX foo_id ON foo(id);
CREATE INDEX foo_name ON foo(name);

INSERT INTO foo (id, name, active) VALUES (1, 'Barack', false);
INSERT INTO foo (id, name, active) VALUES (2, 'Angela', false);

#La question est si je fais un update :

UPDATE foo SET active = true WHERE id = 1;

L'index foo_name ne sera pas mis à jour car name n'est pas modifié.

Mais si je fais (considérant toujours que active=false), en ajoutant la
colonne name mais avec la même valeur.

UPDATE foo SET name='Barack', active = true WHERE id = 1;

Est-ce que PG met à jour l'index où il détecte que la valeur n'a pas
changé dans la ligne ? Je suppose que oui mais j'aimerai tout de même
une confirmation, et si vous avez quelques pointeurs là-dessus ça
m'intéresse. Je cherche à comprendre tous les impacts en terme de perf,
et même si il ne met pas à jour l'index le traitement entraine-t'il une
sur consommation non négligeable ?
Je n'ai pas encore fini le bouquin de Greg Smith sur les
perf de pg, mais comme dans beaucoup de litterature les INDEX sont
majoritairement traitement au travers des lectures, mais assez peu je
trouve au niveau des mises à jour.

Merci et bonne nuit

--
Rodolphe Quiédeville - Expert Tsung
Consulting en performance des SI(G)
http://blog.rodolphe.quiedeville.org
Tel : 06 13 79 63 41

--
Envoi via la liste pgsql-fr-generale (pgsql-fr-generale(at)postgresql(dot)org)

Responses

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Guillaume Lelarge 2014-07-03 21:17:48 Re: Update et effet sur les INDEX
Previous Message Guillaume Lelarge 2014-07-02 14:48:02 Re: [pgsql-fr-generale] 9.4 en dev : ALTER SYSTEM SET => généré avec ou sans cotes ?