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

Mot-clé - postgresql

Fil des billets - Fil des commentaires

mercredi 20 novembre 2024

Découvrez database.build : la base de données PostgreSQL... dans votre navigateur !

Ah, les bases de données… Ces monstres sacrés de l’informatique. Vous en avez probablement entendu parler : PostgreSQL, MySQL, MongoDB. Leurs noms évoquent des lignes de commande barbares et des migraines annoncées, non ? Mais attendez ! Et si je vous disais qu’il existe une façon de jouer avec PostgreSQL, sans installation compliquée, sans serveurs capricieux, directement depuis votre navigateur ? Bienvenue dans l’univers de database.build, le petit génie qui rend les bases de données aussi accessibles qu’un site de recettes de cuisine.

Lire la suite...

samedi 30 mars 2024

Plongez dans PostgresML : Quand PostgreSQL rencontre l'intelligence artificielle

Les bases de données et le machine learning... Deux mondes fascinants qui, jusqu'à récemment, semblaient évoluer sur des chemins parallèles. Mais que diriez-vous si je vous disais qu'il est désormais possible de marier ces deux univers directement au sein de votre base de données PostgreSQL ? Laissez-moi vous présenter PostgresML, la fusion parfaite entre stockage de données robuste et intelligence artificielle avancée.

Lire la suite...

dimanche 9 octobre 2022

Coup d'oeil au Query Parallelism

Le query parallelism est une fonctionnalité intégrée dans PostgreSQL depuis la version 9.6 qui permet de diviser une requête complexe en plusieurs tâches parallèles qui sont exécutées simultanément. Cette fonctionnalité permet d'améliorer les performances en répartissant la charge de travail sur plusieurs cœurs de processeur.

Lire la suite...

dimanche 25 septembre 2022

La réplication logique dans PostgreSQL

PostgreSQL intègre depuis la version 9.4 un système de réplication logique, elle l'a rendu accessible à tous véritablement depuis la version 10 avec les fonctions de publication et d'abonnement. Mais avant tout, qu'est-ce que la réplication logique ?

Lire la suite...

dimanche 8 mai 2022

Les Common Table Expressions (CTE)

Les CTE sont un moyen pratique de définir des sous-requêtes réutilisables dans une requête principale. Les CTE sont similaires aux vues, mais contrairement aux vues, elles ne sont pas stockées en permanence dans la base de données. Au lieu de cela, elles sont définies dans la requête elle-même et ne peuvent être référencées que dans la requête qui les contient.

Lire la suite...

dimanche 21 novembre 2021

la clause SEARCH dans un SELECT récursif

Toujours dans les nouvelles syntaxes apparues dans la release 14 de PostgreSQL autour de la récursivité et après avoir vu la clause CYCLE dans un précédent article, nous allons étudier la clause SEARCH.

Lire la suite...

jeudi 11 novembre 2021

La clause optionnelle CYCLE dans un SELECT récursif

Tout d'abord, voyons ce qu'est un SELECT récursif. Il s'agit d'une requête qui se réfère à elle-même dans la clause FROM pour produire une série de résultats itératifs. Cette fonctionnalité est souvent utilisée pour parcourir des structures de données hiérarchiques telles que les arbres.

Lire la suite...

vendredi 24 septembre 2021

Mieux comprendre le principe du LATERAL JOIN

Le LATERAL JOIN est une extension puissante de la clause JOIN standard dans PostgreSQL. Contrairement à un JOIN normal, qui combine les lignes de deux tables en fonction d'une condition de jointure, un LATERAL JOIN permet de combiner les lignes d'une table avec les résultats d'une requête sur une autre table.

Lire la suite...

samedi 3 novembre 2018

Effacer un gros volume de données sans tout bloquer

Si vous possédez comme moi des tables contenant des dizaines de millions de données, et qui surtout pour certaines contiennent plus de 20 clefs étrangères, vouloir effacer quelques 4 millions de lignes peut engendrer quelques blocages sur votre production. Une solution consiste donc à effacer les données par blocs de tailles raisonnables pour ne pas bloquer l'accès en écriture à cette table.

Lire la suite...

mercredi 8 novembre 2017

Changement de version majeure de PostgreSQL sous Debian / Ubuntu

Chaque release majeure de PostgreSQL (passage de la version 9.6 à la 10 par exemple) nécessite d'effectuer un dump et un restore de la base de données. Le travail n'est pas si fastidieux, mais nécessite quelques manipulations. Debian propose une migration plus simplifiée, destinées, à mon avis, aux bases de données de petites tailles, pour une migration rapide. Si vous travaillez sur des bases de plusieurs Go, cela fonctionnera, bien sur, mais l'interruption de service pourra être longue. Il existe d'autres moyens pour faire ce genre de chose avec des serveurs de réplication par exemple. Je vais donc vous décrire le process simple à mettre en place.

Lire la suite...

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