bbl autour de postgresql @novapost
DESCRIPTION
Brown Bag Lunch sur inviation chez Novapost pour présenter les axes de réflexions pour la gestion de la montée en charge de PostgreSQL. Présentations de différents axes de travail afin dTRANSCRIPT
![Page 1: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/1.jpg)
PostgreSQL quatre ans après
Rodolphe Quiédeville
Novapost
21 mai 2014
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 1 / 43
![Page 2: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/2.jpg)
Axes de travail10 axes de travail pour améliorer les performances et monter encharge en étant serein.
pgtunehardwaretablespacesreplicationconnection poolervaccummaterialized viewspartitionnementindexquery???
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 2 / 43
![Page 3: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/3.jpg)
Axes de travail10 axes de travail pour améliorer les performances et monter encharge en étant serein.
pgtunehardwaretablespacesreplicationconnection poolervaccummaterialized viewspartitionnementindexquery???
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 2 / 43
![Page 4: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/4.jpg)
Axes de travailpgtune
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 3 / 43
![Page 5: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/5.jpg)
pgtune
Script d’optimisation des paramètres de postgresql.conf. L’étapenuméro une de toute optimisation.
utilisationpgtune -i /etc/postgresql/9.1/main/postgresql.conf
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 4 / 43
![Page 6: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/6.jpg)
pgtune
Fait des propositions d’adaptation des paramètres de configuration aumatériel
Postulatpgtune considère qu’un seul cluster tourne sur la machine et quecelle-ci est dédiée au serveur de base de données
Restartcertains paramètres nécessite un redémarrage pour leur prise encompte
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 5 / 43
![Page 7: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/7.jpg)
pgtune
Fait des propositions d’adaptation des paramètres de configuration aumatériel
Postulatpgtune considère qu’un seul cluster tourne sur la machine et quecelle-ci est dédiée au serveur de base de données
Restartcertains paramètres nécessite un redémarrage pour leur prise encompte
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 5 / 43
![Page 8: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/8.jpg)
pgtune
Sortie du script
Example#custom_variable_classes = ’’ # list of custom variable class namesdefault_statistics_target = 50maintenance_work_mem = 176MBconstraint_exclusion = oncheckpoint_completion_target = 0.9effective_cache_size = 2GBwork_mem = 18MBwal_buffers = 8MBcheckpoint_segments = 16shared_buffers = 704MBmax_connections = 80
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 6 / 43
![Page 9: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/9.jpg)
Axes de travailpgtunehardware
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 7 / 43
![Page 10: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/10.jpg)
hardware
PostgreSQL a plusieurs flux de lecture/écriture, il faut en profiter tantque faire se peut.
plusieurs disquesplusieurs contrôlleursRAID10 au lieu de RAID5les WAL d’un coté les données de l’autre
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 8 / 43
![Page 11: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/11.jpg)
hardware
PostgreSQL a plusieurs flux de lecture/écriture, il faut en profiter tantque faire se peut.
plusieurs disques
plusieurs contrôlleursRAID10 au lieu de RAID5les WAL d’un coté les données de l’autre
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 8 / 43
![Page 12: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/12.jpg)
hardware
PostgreSQL a plusieurs flux de lecture/écriture, il faut en profiter tantque faire se peut.
plusieurs disquesplusieurs contrôlleurs
RAID10 au lieu de RAID5les WAL d’un coté les données de l’autre
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 8 / 43
![Page 13: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/13.jpg)
hardware
PostgreSQL a plusieurs flux de lecture/écriture, il faut en profiter tantque faire se peut.
plusieurs disquesplusieurs contrôlleursRAID10 au lieu de RAID5
les WAL d’un coté les données de l’autre
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 8 / 43
![Page 14: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/14.jpg)
hardware
PostgreSQL a plusieurs flux de lecture/écriture, il faut en profiter tantque faire se peut.
plusieurs disquesplusieurs contrôlleursRAID10 au lieu de RAID5les WAL d’un coté les données de l’autre
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 8 / 43
![Page 15: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/15.jpg)
Axes de travailpgtunehardwaretablespaces
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 9 / 43
![Page 16: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/16.jpg)
Tablespace
Les tablespaces permettent de définir l’emplacement dans le systèmede fichiers où seront stockés les fichiers représentant les objets de labase de données.
séparer les tables des indexséparer les tables d’archives des données fraicheslier les spécificités physique du stockage à l’utilisation logique desdonnées (session en SSD)
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 10 / 43
![Page 17: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/17.jpg)
Tablespace
Les tablespaces permettent de définir l’emplacement dans le systèmede fichiers où seront stockés les fichiers représentant les objets de labase de données.
séparer les tables des index
séparer les tables d’archives des données fraicheslier les spécificités physique du stockage à l’utilisation logique desdonnées (session en SSD)
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 10 / 43
![Page 18: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/18.jpg)
Tablespace
Les tablespaces permettent de définir l’emplacement dans le systèmede fichiers où seront stockés les fichiers représentant les objets de labase de données.
séparer les tables des indexséparer les tables d’archives des données fraiches
lier les spécificités physique du stockage à l’utilisation logique desdonnées (session en SSD)
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 10 / 43
![Page 19: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/19.jpg)
Tablespace
Les tablespaces permettent de définir l’emplacement dans le systèmede fichiers où seront stockés les fichiers représentant les objets de labase de données.
séparer les tables des indexséparer les tables d’archives des données fraicheslier les spécificités physique du stockage à l’utilisation logique desdonnées (session en SSD)
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 10 / 43
![Page 20: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/20.jpg)
Tablespace
CréationCREATE TABLESPACE espace_rapide LOCATION ’/mnt/sda1/postgresql/data’;
Création de la tableCREATE TABLE foo(i int) TABLESPACE espace1;
Le déplacement de données existantes est également possible.
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 11 / 43
![Page 21: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/21.jpg)
Axes de travailpgtunehardwaretablespacesreplication
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 12 / 43
![Page 22: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/22.jpg)
replication
Vaste programme.
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 13 / 43
![Page 23: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/23.jpg)
replication
Vaste programme. La réplication est un des sujets les plus discutésdes bases de données à ce jour.
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 14 / 43
![Page 24: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/24.jpg)
replication
Vaste programme. La réplication est un des sujets les plus discutésdes bases de données à ce jour.
synchrone/asynchrone
warn/hot standbysingle/multi mastergranularité au niveau tableincore/middleware (pgpool-II)
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 15 / 43
![Page 25: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/25.jpg)
replication
Vaste programme. La réplication est un des sujets les plus discutésdes bases de données à ce jour.
synchrone/asynchronewarn/hot standby
single/multi mastergranularité au niveau tableincore/middleware (pgpool-II)
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 15 / 43
![Page 26: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/26.jpg)
replication
Vaste programme. La réplication est un des sujets les plus discutésdes bases de données à ce jour.
synchrone/asynchronewarn/hot standbysingle/multi master
granularité au niveau tableincore/middleware (pgpool-II)
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 15 / 43
![Page 27: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/27.jpg)
replication
Vaste programme. La réplication est un des sujets les plus discutésdes bases de données à ce jour.
synchrone/asynchronewarn/hot standbysingle/multi mastergranularité au niveau table
incore/middleware (pgpool-II)
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 15 / 43
![Page 28: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/28.jpg)
replication
Vaste programme. La réplication est un des sujets les plus discutésdes bases de données à ce jour.
synchrone/asynchronewarn/hot standbysingle/multi mastergranularité au niveau tableincore/middleware (pgpool-II)
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 15 / 43
![Page 29: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/29.jpg)
replication
Vaste programme. La réplication est un des sujets les plus discutésdes bases de données à ce jour.
synchrone/asynchronewarn/hot standbysingle/multi mastergranularité au niveau tableincore/middleware (pgpool-II)
WarningLa réplication est simple à mettre en oeuvre, la gérer au jour le jour estun travail de tous les jours.
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 16 / 43
![Page 30: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/30.jpg)
Axes de travailpgtunehardwaretablespacesreplicationconnection pooler
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 17 / 43
![Page 31: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/31.jpg)
connection pooler
L’utilisation d’un pooler de connection est intéressant quand un grandnombre de connections sont créees pour de courtes durées. Unpooler peut aussi être intéressant conjointement avec une réplication.
pgbouncerpgpool-II
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 18 / 43
![Page 32: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/32.jpg)
Axes de travailpgtunehardwaretablespacesreplicationconnection poolervaccum
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 19 / 43
![Page 33: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/33.jpg)
vaccum
La commande VACUUM doit traiter chaque table régulièrement pourplusieurs raisons :
pour récupérer ou ré-utiliser l’espace disque occupé par les lignessupprimées ou mises à jourpour mettre à jour les statistiques utilisées par l’optimiseur dePostgreSQLpour mettre à jour la carte de visibilité qui accélère les parcoursd’index seulspour prévenir la perte des données les plus anciennes à caused’un cycle de l’identifiant de transaction (XID) ou d’un cycle del’identifiant de multixact.
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 20 / 43
![Page 34: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/34.jpg)
vaccum
La commande VACUUM doit traiter chaque table régulièrement pourplusieurs raisons :
pour récupérer ou ré-utiliser l’espace disque occupé par les lignessupprimées ou mises à jour
pour mettre à jour les statistiques utilisées par l’optimiseur dePostgreSQLpour mettre à jour la carte de visibilité qui accélère les parcoursd’index seulspour prévenir la perte des données les plus anciennes à caused’un cycle de l’identifiant de transaction (XID) ou d’un cycle del’identifiant de multixact.
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 20 / 43
![Page 35: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/35.jpg)
vaccum
La commande VACUUM doit traiter chaque table régulièrement pourplusieurs raisons :
pour récupérer ou ré-utiliser l’espace disque occupé par les lignessupprimées ou mises à jourpour mettre à jour les statistiques utilisées par l’optimiseur dePostgreSQL
pour mettre à jour la carte de visibilité qui accélère les parcoursd’index seulspour prévenir la perte des données les plus anciennes à caused’un cycle de l’identifiant de transaction (XID) ou d’un cycle del’identifiant de multixact.
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 20 / 43
![Page 36: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/36.jpg)
vaccum
La commande VACUUM doit traiter chaque table régulièrement pourplusieurs raisons :
pour récupérer ou ré-utiliser l’espace disque occupé par les lignessupprimées ou mises à jourpour mettre à jour les statistiques utilisées par l’optimiseur dePostgreSQLpour mettre à jour la carte de visibilité qui accélère les parcoursd’index seuls
pour prévenir la perte des données les plus anciennes à caused’un cycle de l’identifiant de transaction (XID) ou d’un cycle del’identifiant de multixact.
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 20 / 43
![Page 37: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/37.jpg)
vaccum
La commande VACUUM doit traiter chaque table régulièrement pourplusieurs raisons :
pour récupérer ou ré-utiliser l’espace disque occupé par les lignessupprimées ou mises à jourpour mettre à jour les statistiques utilisées par l’optimiseur dePostgreSQLpour mettre à jour la carte de visibilité qui accélère les parcoursd’index seulspour prévenir la perte des données les plus anciennes à caused’un cycle de l’identifiant de transaction (XID) ou d’un cycle del’identifiant de multixact.
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 20 / 43
![Page 38: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/38.jpg)
vaccumLa commande VACUUM doit traiter chaque table régulièrement pourplusieurs raisons :
pour récupérer ou ré-utiliser l’espace disque occupé par les lignessupprimées ou mises à jourpour mettre à jour les statistiques utilisées par l’optimiseur dePostgreSQLpour mettre à jour la carte de visibilité qui accélère les parcoursd’index seulspour prévenir la perte des données les plus anciennes à caused’un cycle de l’identifiant de transaction (XID) ou d’un cycle del’identifiant de multixact.
autovaccumSi vous ne savez pas à quoi sert autovaccum, laissez faireautovaccum.
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 21 / 43
![Page 39: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/39.jpg)
Axes de travailpgtunehardwaretablespacesreplicationconnection poolervaccummaterialized views
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 22 / 43
![Page 40: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/40.jpg)
Vues matérialisées
Le meilleur de la table et de la vue.
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 23 / 43
![Page 41: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/41.jpg)
Vues matérialisées
Le meilleur de la table et de la vue. Les meilleures alliées desbusiness analyst.
se crée comme une vuecrée une table physiqueporte ses propres indexscinde les flux de requêtesdoit être mise à jour suivant les besoins !le REFRESH prend un ACCESS EXCLUSIVE LOCK (corrigé en9.4)
New !A partir de PostgreSQL 9.3
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 24 / 43
![Page 42: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/42.jpg)
Vues matérialisées
Le meilleur de la table et de la vue. Les meilleures alliées desbusiness analyst.
se crée comme une vue
crée une table physiqueporte ses propres indexscinde les flux de requêtesdoit être mise à jour suivant les besoins !le REFRESH prend un ACCESS EXCLUSIVE LOCK (corrigé en9.4)
New !A partir de PostgreSQL 9.3
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 24 / 43
![Page 43: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/43.jpg)
Vues matérialisées
Le meilleur de la table et de la vue. Les meilleures alliées desbusiness analyst.
se crée comme une vuecrée une table physique
porte ses propres indexscinde les flux de requêtesdoit être mise à jour suivant les besoins !le REFRESH prend un ACCESS EXCLUSIVE LOCK (corrigé en9.4)
New !A partir de PostgreSQL 9.3
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 24 / 43
![Page 44: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/44.jpg)
Vues matérialisées
Le meilleur de la table et de la vue. Les meilleures alliées desbusiness analyst.
se crée comme une vuecrée une table physiqueporte ses propres index
scinde les flux de requêtesdoit être mise à jour suivant les besoins !le REFRESH prend un ACCESS EXCLUSIVE LOCK (corrigé en9.4)
New !A partir de PostgreSQL 9.3
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 24 / 43
![Page 45: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/45.jpg)
Vues matérialisées
Le meilleur de la table et de la vue. Les meilleures alliées desbusiness analyst.
se crée comme une vuecrée une table physiqueporte ses propres indexscinde les flux de requêtes
doit être mise à jour suivant les besoins !le REFRESH prend un ACCESS EXCLUSIVE LOCK (corrigé en9.4)
New !A partir de PostgreSQL 9.3
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 24 / 43
![Page 46: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/46.jpg)
Vues matérialisées
Le meilleur de la table et de la vue. Les meilleures alliées desbusiness analyst.
se crée comme une vuecrée une table physiqueporte ses propres indexscinde les flux de requêtesdoit être mise à jour suivant les besoins !
le REFRESH prend un ACCESS EXCLUSIVE LOCK (corrigé en9.4)
New !A partir de PostgreSQL 9.3
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 24 / 43
![Page 47: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/47.jpg)
Vues matérialisées
Le meilleur de la table et de la vue. Les meilleures alliées desbusiness analyst.
se crée comme une vuecrée une table physiqueporte ses propres indexscinde les flux de requêtesdoit être mise à jour suivant les besoins !le REFRESH prend un ACCESS EXCLUSIVE LOCK (corrigé en9.4)
New !A partir de PostgreSQL 9.3
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 24 / 43
![Page 48: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/48.jpg)
Vues matérialisées
Le meilleur de la table et de la vue. Les meilleures alliées desbusiness analyst.
se crée comme une vuecrée une table physiqueporte ses propres indexscinde les flux de requêtesdoit être mise à jour suivant les besoins !le REFRESH prend un ACCESS EXCLUSIVE LOCK (corrigé en9.4)
New !A partir de PostgreSQL 9.3
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 24 / 43
![Page 49: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/49.jpg)
Vues matérialisées
CréationCREATE MATERIALIZED VIEW resume_ventes AS
SELECTno_vendeur,date_facture,sum(mtt_facture)::numeric(13,2) as mtt_ventes
FROM factureWHERE date_facture < CURRENT_DATEGROUP BY
no_vendeur,date_facture
ORDER BYno_vendeur,date_facture;
CREATE UNIQUE INDEX ventes_resume_vendeurON sales_summary (no_vendeur, date_facture);
Mise à jourREFRESH MATERIALIZED VIEW resume_ventes;
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 25 / 43
![Page 50: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/50.jpg)
Axes de travailpgtunehardwaretablespacesreplicationconnection poolervaccummaterialized viewspartitionnement
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 26 / 43
![Page 51: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/51.jpg)
partitionnement
Le partitionnement fait référence à la division d’une table logiquevolumineuse en plusieurs parties physiques plus petites.
utilise l’héritage de tablepartitionnement par échelonpartitionnement par liste
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 27 / 43
![Page 52: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/52.jpg)
partitionnement
Le partitionnement fait référence à la division d’une table logiquevolumineuse en plusieurs parties physiques plus petites.
utilise l’héritage de table
partitionnement par échelonpartitionnement par liste
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 27 / 43
![Page 53: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/53.jpg)
partitionnement
Le partitionnement fait référence à la division d’une table logiquevolumineuse en plusieurs parties physiques plus petites.
utilise l’héritage de tablepartitionnement par échelon
partitionnement par liste
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 27 / 43
![Page 54: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/54.jpg)
partitionnement
Le partitionnement fait référence à la division d’une table logiquevolumineuse en plusieurs parties physiques plus petites.
utilise l’héritage de tablepartitionnement par échelonpartitionnement par liste
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 27 / 43
![Page 55: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/55.jpg)
partitionnement
Création table maître
SQLCREATE TABLE mesure (
id_ville int not null,date_trace date not null,temperature int,ventes int
);
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 28 / 43
![Page 56: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/56.jpg)
partitionnement
Création des tables filles avec contraintes
SQLCREATE TABLE mesure_a2006m02 (
CHECK ( date_trace >= DATE ’2006-02-01’ AND date_trace < DATE’2006-03-01’ )
) INHERITS (mesure);
CREATE TABLE mesure_a2006m03 (CHECK ( date_trace >= DATE ’2006-03-01’ AND date_trace < DATE
’2006-04-01’ )) INHERITS (mesure);...
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 29 / 43
![Page 57: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/57.jpg)
partitionnement
Création des index
SQLCREATE INDEX mesure_a2006m02_date_trace ON mesure_a2006m02 (date_trace);
CREATE INDEX mesure_a2006m03_date_trace ON mesure_a2006m03 (date_trace);...CREATE INDEX mesure_a2007m11_date_trace ON mesure_a2007m11 (date_trace);
CREATE INDEX mesure_a2007m12_date_trace ON mesure_a2007m12 (date_trace);
CREATE INDEX mesure_a2008m01_date_trace ON mesure_a2008m01 (date_trace);
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 30 / 43
![Page 58: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/58.jpg)
partitionnement
Création des trigger
SQLCREATE OR REPLACE FUNCTION mesure_insert_trigger()RETURNS TRIGGER AS $$BEGIN
INSERT INTO mesure_a2008m01 VALUES (NEW.*);RETURN NULL;
END;$$LANGUAGE plpgsql;
SQLCREATE TRIGGER insert_mesure_trigger
BEFORE INSERT ON mesureFOR EACH ROW EXECUTE PROCEDURE mesure_insert_trigger();
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 31 / 43
![Page 59: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/59.jpg)
partitionnement
Attention à l’utilisation
SQLrodo@[local]:5432 rodo=> explain select * from mesure ;
QUERY PLAN--------------------------------------------------------------------------Append (cost=0.00..55.40 rows=3541 width=16)
-> Seq Scan on mesure (cost=0.00..0.00 rows=1 width=16)-> Seq Scan on mesure_a2006m02 (cost=0.00..27.70 rows=1770 width=16)-> Seq Scan on mesure_a2006m03 (cost=0.00..27.70 rows=1770 width=16)
(4 rows)
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 32 / 43
![Page 60: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/60.jpg)
Axes de travailpgtunehardwaretablespacesreplicationconnection poolervaccummaterialized viewshéritage de tableindex
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 33 / 43
![Page 61: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/61.jpg)
index
Il s’avère que la seule chose que les développeurs doiventconnaître est l’indexation. En fait, l’indexation d’une base dedonnées est un travail de développeurs car l’information laplus importante pour une bonne indexation ne se situe ni auniveau de la configuration du système de stockage ni dans laconfiguration du matériel, mais plutôt au niveau del’application :
« comment l’application cherche ses données ».
Markus Winand - http://use-the-index-luke.com/fr
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 34 / 43
![Page 62: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/62.jpg)
index
Trop d’index nuit à la performance. Mettre à jour un index qui n’estjamais lu n’est pas forcément nécessaire.
SQLindexrelname | idx_scan | idx_tup_read | idx_tup_fetch
--------------------+----------+--------------+---------------job_job_fkposte_id | 0 | 0 | 0job_job_region_id | 0 | 0 | 0job_job_company_id | 43 | 323 | 305job_job_author_id | 0 | 0 | 0job_job_pkey | 22968 | 22930 | 22911
(5 rows)
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 35 / 43
![Page 63: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/63.jpg)
index
Trop d’index nuit à la performance. Mettre à jour un index qui n’estjamais lu n’est pas forcément nécessaire.
SQLindexrelname | idx_scan | idx_tup_read | idx_tup_fetch
--------------------+----------+--------------+---------------job_job_fkposte_id | 0 | 0 | 0job_job_region_id | 0 | 0 | 0job_job_company_id | 43 | 323 | 305job_job_author_id | 0 | 0 | 0job_job_pkey | 22968 | 22930 | 22911
(5 rows)
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 35 / 43
![Page 64: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/64.jpg)
Axes de travailpgtunehardwaretablespacesreplicationconnection poolervaccummaterialized viewshéritage de tableindexquery
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 36 / 43
![Page 65: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/65.jpg)
query
La ré-écriture des requêtes et le travail coté application
la requête la plus rapide est celle qui n’est pas éxecutéerien ne sert de ré-écrire les index si les requêtes ne les utilisentpascertains axes d’optimisation ne sont pas compatible avec lesframework mal conçus
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 37 / 43
![Page 66: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/66.jpg)
query
La ré-écriture des requêtes et le travail coté application
la requête la plus rapide est celle qui n’est pas éxecutée
rien ne sert de ré-écrire les index si les requêtes ne les utilisentpascertains axes d’optimisation ne sont pas compatible avec lesframework mal conçus
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 37 / 43
![Page 67: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/67.jpg)
query
La ré-écriture des requêtes et le travail coté application
la requête la plus rapide est celle qui n’est pas éxecutéerien ne sert de ré-écrire les index si les requêtes ne les utilisentpas
certains axes d’optimisation ne sont pas compatible avec lesframework mal conçus
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 37 / 43
![Page 68: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/68.jpg)
query
La ré-écriture des requêtes et le travail coté application
la requête la plus rapide est celle qui n’est pas éxecutéerien ne sert de ré-écrire les index si les requêtes ne les utilisentpascertains axes d’optimisation ne sont pas compatible avec lesframework mal conçus
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 37 / 43
![Page 69: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/69.jpg)
Axes de travailpgtunehardwaretablespacesreplicationconnection poolervaccummaterialized viewshéritage de tableindexquery???
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 38 / 43
![Page 70: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/70.jpg)
Axes de travailpgtunehardwaretablespacesreplicationconnection poolervaccummaterialized viewshéritage de tableindexqueryschema
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 39 / 43
![Page 71: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/71.jpg)
schema
Last but not least, le schema reste la source numéro un desproblèmes de performance et de montée en charge.
tableviewindex"les jointures c’est bon mangez-en"
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 40 / 43
![Page 72: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/72.jpg)
schema
Last but not least, le schema reste la source numéro un desproblèmes de performance et de montée en charge.
table
viewindex"les jointures c’est bon mangez-en"
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 40 / 43
![Page 73: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/73.jpg)
schema
Last but not least, le schema reste la source numéro un desproblèmes de performance et de montée en charge.
tableview
index"les jointures c’est bon mangez-en"
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 40 / 43
![Page 74: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/74.jpg)
schema
Last but not least, le schema reste la source numéro un desproblèmes de performance et de montée en charge.
tableviewindex
"les jointures c’est bon mangez-en"
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 40 / 43
![Page 75: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/75.jpg)
schema
Last but not least, le schema reste la source numéro un desproblèmes de performance et de montée en charge.
tableviewindex"les jointures c’est bon mangez-en"
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 40 / 43
![Page 76: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/76.jpg)
Conclusion
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 41 / 43
![Page 77: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/77.jpg)
Conclusion
Tout modification structurelle doit s’accompagner d’un processus devalidation itératif.
1 rédaction d’un protocole de test avec son jeu de données2 mesure des indicateurs3 modification d’un paramètre4 mesure des même indicateurs5 analyse des résultats6 goto 3 | 1
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 42 / 43
![Page 78: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/78.jpg)
Conclusion
Tout modification structurelle doit s’accompagner d’un processus devalidation itératif.
1 rédaction d’un protocole de test avec son jeu de données
2 mesure des indicateurs3 modification d’un paramètre4 mesure des même indicateurs5 analyse des résultats6 goto 3 | 1
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 42 / 43
![Page 79: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/79.jpg)
Conclusion
Tout modification structurelle doit s’accompagner d’un processus devalidation itératif.
1 rédaction d’un protocole de test avec son jeu de données2 mesure des indicateurs
3 modification d’un paramètre4 mesure des même indicateurs5 analyse des résultats6 goto 3 | 1
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 42 / 43
![Page 80: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/80.jpg)
Conclusion
Tout modification structurelle doit s’accompagner d’un processus devalidation itératif.
1 rédaction d’un protocole de test avec son jeu de données2 mesure des indicateurs3 modification d’un paramètre
4 mesure des même indicateurs5 analyse des résultats6 goto 3 | 1
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 42 / 43
![Page 81: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/81.jpg)
Conclusion
Tout modification structurelle doit s’accompagner d’un processus devalidation itératif.
1 rédaction d’un protocole de test avec son jeu de données2 mesure des indicateurs3 modification d’un paramètre4 mesure des même indicateurs
5 analyse des résultats6 goto 3 | 1
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 42 / 43
![Page 82: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/82.jpg)
Conclusion
Tout modification structurelle doit s’accompagner d’un processus devalidation itératif.
1 rédaction d’un protocole de test avec son jeu de données2 mesure des indicateurs3 modification d’un paramètre4 mesure des même indicateurs5 analyse des résultats
6 goto 3 | 1
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 42 / 43
![Page 83: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/83.jpg)
Conclusion
Tout modification structurelle doit s’accompagner d’un processus devalidation itératif.
1 rédaction d’un protocole de test avec son jeu de données2 mesure des indicateurs3 modification d’un paramètre4 mesure des même indicateurs5 analyse des résultats6 goto 3 | 1
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 42 / 43
![Page 84: BBL autour de PostgreSQL @Novapost](https://reader034.vdocuments.mx/reader034/viewer/2022042606/5491ade9b4795956138b5543/html5/thumbnails/84.jpg)
Questions ?
Rodolphe Quiédeville
[email protected]://blog.rodolphe.quiedeville.org/
Document publié sous Licence Creative Commons BY-SA 2.0
Rodolphe Quiédeville (Freelance) PostgreSQL quatre ans après 21 mai 2014 43 / 43