Footcow Blog

Aller au contenu | Aller au menu | Aller à la recherche

Mot-clé - postgresql

Fil des billets - Fil des commentaires

dimanche, 11 septembre 2011

PostgreSQL : Affichez vos données en ligne avec Crosstab

Quel client ne vous a pas demandé un jour de lui présenter des statistiques mensuelles de ses données ? Souvent il fallait faire les calculs, obtenir des agrégations et coder une interface de présentation qui prenait des résultats en colonne pour les remettre en ligne. Laborieux, souvent source d'erreur et de perte de temps cette méthode n'avait pas tellement d'équivalent directement en base de données. La solution est apparue depuis quelques release de PostgreSQL, il suffit de savoir manipuler l'extension Crosstab.

Lire la suite...

mardi, 14 décembre 2010

PostgreSQL : Taille des schémas

Suite à un vieux billet concernant l'espace disque de vos bases de données PostgreSQL, il m'a souvent été demandé comment trouver la taille engloutie par les différents schémas qui composent votre base de données.

Lire la suite...

lundi, 9 août 2010

Migrer Akonadi sur PostgreSQL

Akonadi, le service de stockage des données de toute la partie gestionnaire d’informations personnelles (PIM) de KDE 4, est livré en standard avec une configuration faite pour MySQL. Comme vous pouvez vous en douter, les lenteurs, ajouté au côté capricieux des mises à jour de MySQL et ma passion pour PostgreSQL m'ont rapidement fait migrer vers ce dernier choix. Depuis, je n'ai plus jamais entendu parlé d'Akonadi et tout fonctionne parfaitement bien. Voilà donc un petit mémo pour migrer votre configuration vers PostgreSQL en quelques minutes.

Lire la suite...

samedi, 24 octobre 2009

PostgreSQL : optimisez vos migrations de versions !


L'un des principal problème lié aux évolutions de PostgreSQL reste la migration des données. Changer de version va souvent de paire avec, une nouvelle installation de PostgreSQL, un dump complet de la base de données, puis un ré-import des données ... Dès que l'on a en place des bases de données de plusieurs centaines de giga-octets cela implique des interruptions de services longues, et donc de l'insatisfaction client. Heureuses la communauté de PostgreSQL est très active et s'est donc mis en tête de trouver des solutions à ce problème. La sortie de la version 8.4 de PostgreSQL fait donc apparaître une nouvelle option : la restauration en parallèle ... compatible également avec les versions précédentes de PostgreSQL (8.2 et 8.3) ! Un must have !

Lire la suite...

samedi, 19 septembre 2009

Accélérer une migration de version

Un très bon article pour réaliser une migration de PostgreSQL v8.2 vers PostgreSQL v8.3 ... 9h sur le papier par un processus "classique", 2h30 au final ... joli travail !

Tous les détails sont à lire sur Speeding up dump/restore process

jeudi, 9 octobre 2008

PostgreSQL ou MySQL ?

Je ne vais pas chercher à rentrer dans un débat sans fin sur le choix de la meilleure base de données open source ... Mais comme un de mes lecteurs me l'a demandé voilà déjà quelques temps je vais essayer objectivement de présenter chacune des bases et vous expliquer pourquoi j'ai porté mon choix sur l'une plus que sur l'autre.

Lire la suite...

mardi, 5 février 2008

PostgreSQL v8.3 dans les bacs !

Voilà après 3 release candidate, 15 mois de travail, 300 patchs, 200 contributeurs, PostgreSQL 8.3 vient de sortir avec quelques semaines de retard sur le planning, mais avec son lot de très bonnes nouvelles. Vous pouvez prendre connaissance de l'annonce presse officielle pour connaître le détail des nouvelles fonctionnalités ou voir la matrice des fonctionnalités répartie sur les 5 dernières versions.

Lire la suite...

samedi, 2 février 2008

Générer des listes de données

Voilà une fonction peut-être mal connue de PostgreSQL, mais qui permet de réaliser des listes automatiques de données en quelques secondes.

generate_series(start, stop)

Son utilisation peut vous rendre bien des services, tant pour des générations de tableaux rapides, que pour avoir des cohérences de données parfaites sur des données séquentielles manquantes, ou encore pour générer des listes avancées de données comme des dates par exemple.

Mais les exemples sont souvent plus parlant que de longs discours ...

Lire la suite...

mardi, 18 décembre 2007

L'espace disque de votre base de données

Votre base de données est volumineuse ... vous voyez aisément l'espace utilisé par le répertoire qui stocke vos données, mais quand est-il d'une table en particulier ? Comment se rendre compte facilement du volume que représente ces millions de données que vous gérez au quotidien ? Votre espace disque de stockage principal commence sérieusement à s'amoindrir ... ne serait-il pas temps de créer un nouveau tablespace pour optimiser les accès sur un autre espace disque ?

Des questions qui assurément vous sont venus un jour ou l'autre, et qui sont très faciles à connaître avec PostgreSQL.

Lire la suite...

lundi, 17 décembre 2007

Toute la puissance de DISTINCT ON avec PostgreSQL

Qui n'a pas eu le besoin un jour de ressortir un listing contenant le détail de toutes les dernières commandes de ses clients ?

Jusque là ... il fallait souvent passer par des sous SELECT, un MAX et une vitesse de calcul pas souvent au rendez-vous ...
Du genre :

SELECT c.id, c.nom, f.id, f.date, f.total 
  FROM (clients c INNER JOIN factures f ON c.id = f.id)
       INNER JOIN
       (SELECT MAX(date) AS date_derniere_facture, id 
          FROM factures 
         GROUP BY id) AS mf ON mf.date_derniere_facture = f.date AND mf.id = c.id

Si vous êtes un utilisateur de PostgreSQL, vous pouvez vous simplifier la vie en utilisant la fonction DISTINCT ON, de la façon suivante :

SELECT DISTINCT ON (c.id) c.id, c.nom, f.id, f.date, f.total
  FROM clients c LEFT JOIN factures f ON c.id = f.id
 ORDER BY c.id, f.date DESC, f.id DESC;

Et le tour est joué, dans un temps record.

- page 1 de 2