Définitions

PostgreSQL vs MySQL : différences et comment choisir

PostgreSQL vs MySQL : différences et comment choisir

    PostgreSQL et MySQL sont deux bases open source solides, mais elles ne servent pas les mêmes projets. Comparaison point par point, chiffres à jour et méthode simple pour choisir.

    PostgreSQL et MySQL sont deux bases de données relationnelles open source, fiables et gratuites. MySQL reste le choix naturel pour WordPress, WooCommerce et la plupart des CMS PHP, grâce à sa simplicité et à sa présence chez tous les hébergeurs. PostgreSQL s’impose pour les applications sur mesure qui ont besoin de requêtes complexes, de types de données riches (JSON indexé, géographie, vecteurs pour l’IA) ou d’une intégrité des données très stricte. Pour un nouveau projet applicatif sans contrainte de CMS, PostgreSQL est aujourd’hui le choix le plus courant.

    PostgreSQL vs MySQL
    PostgreSQL vs MySQL

    Le duel est ancien, mais le paysage a changé depuis la première version de cet article. PostgreSQL est devenu la base la plus utilisée par les développeurs dans l’enquête Stack Overflow, MySQL a changé de modèle de versions, et plusieurs différences d’autrefois ont disparu. Voici une comparaison à jour, point par point, et une méthode simple pour choisir.

    Sommaire

    Qu’est-ce que PostgreSQL ?

    PostgreSQL est un système de gestion de base de données relationnel-objet open source. Ses origines remontent au projet POSTGRES lancé en 1986 à l’université de Berkeley, ce qui représente près de 40 ans de développement actif selon le site officiel. Il est développé par une communauté, le PostgreSQL Global Development Group, et n’appartient à aucune entreprise.

    • Licence : licence PostgreSQL, une licence libre très permissive proche des licences BSD et MIT.
    • Version actuelle : PostgreSQL 18, sortie le 25 septembre 2025. Chaque version majeure est maintenue 5 ans.
    • Points forts : conformité ACID, contrôle de concurrence multiversion (MVCC), types de données riches (JSON et JSONB, tableaux, plages, UUID, types géométriques), index avancés (B-tree, GiST, GIN, BRIN), réplication synchrone, asynchrone et logique, recherche plein texte, sécurité au niveau des lignes, extensibilité.

    Qu’est-ce que MySQL ?

    MySQL est un système de gestion de base de données relationnel créé par la société suédoise MySQL AB et aujourd’hui développé par Oracle. Il est au cœur de la pile LAMP (Linux, Apache, MySQL, PHP) qui a porté une grande partie du web, et reste la base de référence des CMS comme WordPress, Drupal ou Joomla.

    • Licence : double licence. La version Community est sous GPLv2 ; Oracle vend une licence commerciale pour les éditeurs qui l’intègrent dans un logiciel distribué sans vouloir publier leur code.
    • Versions : MySQL fonctionne avec deux types de versions. Les versions LTS (comme la 8.4) reçoivent uniquement des correctifs et bénéficient de 5 ans de support principal plus 3 ans de support étendu. Les versions « Innovation » apportent de nouvelles fonctions et ne sont supportées que jusqu’à la suivante.
    • Points forts : simplicité d’installation et d’administration, excellentes performances en lecture sur des requêtes simples, disponible chez pratiquement tous les hébergeurs mutualisés, écosystème d’outils très large.

    Il faut aussi mentionner MariaDB, un fork de MySQL lancé en 2009 par des développeurs d’origine de MySQL, dont Michael « Monty » Widenius. Largement compatible avec MySQL, il est proposé par défaut par de nombreuses distributions Linux et hébergeurs. WordPress recommande indifféremment MySQL 8.0 ou plus, ou MariaDB 10.11 ou plus.

    PostgreSQL vs MySQL
    PostgreSQL vs MySQL

    PostgreSQL vs MySQL : quelles différences en un tableau ?

    Le tableau de la première version de cet article contenait plusieurs affirmations devenues fausses (MySQL « partiellement ACID », réplication MySQL « moins fiable »…). Voici une version corrigée, fondée sur les documentations officielles.

    CritèrePostgreSQLMySQL
    TypeRelationnel-objet, très extensibleRelationnel
    LicenceLicence PostgreSQL (permissive)GPLv2 ou licence commerciale Oracle
    GouvernanceCommunauté indépendanteOracle
    Conformité ACIDOui, par conceptionOui avec le moteur InnoDB (moteur par défaut)
    Architecture des connexionsUn processus par connexionUn processus serveur, un thread par connexion
    DDL transactionnelOui : un CREATE ou ALTER TABLE peut être annulé dans une transactionNon : les ordres DDL valident implicitement la transaction en cours
    JSONTypes json et jsonb, jsonb indexable avec GINType JSON natif, indexation via colonnes générées
    Types avancésTableaux, plages, UUID, types géométriques, types personnalisésTypes SQL standards, types spatiaux
    IndexB-tree, hash, GiST, SP-GiST, GIN, BRIN, index partiels et d’expressionB-tree, hash (selon le moteur), plein texte, spatiaux
    RéplicationAsynchrone, synchrone, logiqueAsynchrone par défaut, semi-synchrone, synchrone avec NDB Cluster
    ExtensionsTrès riche (PostGIS, pgvector…)Plus limité
    Hébergement mutualiséRareQuasi universel
    Outils graphiquespgAdmin, DBeaverMySQL Workbench, phpMyAdmin, DBeaver

    Lequel est le plus utilisé aujourd’hui ?

    Dans l’enquête Stack Overflow 2025 auprès des développeurs, PostgreSQL arrive en tête des bases de données utilisées, avec 55,6 % des répondants, devant MySQL (40,5 %) et SQLite (37,5 %). Chez les développeurs professionnels, l’écart est encore plus net : 58,2 % pour PostgreSQL contre 39,6 % pour MySQL.

    Ce chiffre mesure l’usage par les développeurs, pas le nombre de sites. En nombre d’installations, MySQL et MariaDB restent omniprésents, parce qu’ils font tourner la grande majorité des sites WordPress. Les deux lectures sont vraies : PostgreSQL domine les nouveaux projets applicatifs, MySQL domine le web « installé ».

    Lequel est le plus performant ?

    Il n’y a pas de réponse générale, et méfiez-vous des comparatifs qui en donnent une. Les performances dépendent de la structure des données, des index, des requêtes, de la configuration et du matériel bien plus que du moteur lui-même. Quelques tendances font néanmoins consensus :

    • Lectures simples et nombreuses (afficher des pages, des fiches produits) : MySQL est historiquement très efficace et léger.
    • Requêtes complexes (jointures multiples, agrégations, fonctions de fenêtrage, sous-requêtes) : PostgreSQL dispose d’un planificateur de requêtes plus sophistiqué et de types d’index adaptés à chaque usage.
    • Beaucoup de connexions simultanées : le modèle « un processus par connexion » de PostgreSQL consomme plus de mémoire par connexion. En production, on place généralement un gestionnaire de pool de connexions devant PostgreSQL.

    Dans la pratique, une base lente est bien plus souvent une base mal indexée qu’un mauvais choix de moteur. Nous détaillons les leviers dans Optimisation des performances de bases de données pour applications web.

    Quelles fonctionnalités font vraiment la différence ?

    Le JSON

    Les deux bases stockent du JSON, mais PostgreSQL va plus loin avec le type jsonb, stocké sous forme binaire et indexable avec un index GIN. On peut ainsi rechercher efficacement à l’intérieur de documents JSON, ce qui permet de mêler dans une même base des données très structurées et des données plus souples, sans ajouter une base NoSQL.

    -- PostgreSQL : index sur une colonne jsonb et recherche par contenu
    CREATE INDEX idx_produits_attributs ON produits USING GIN (attributs);
    SELECT nom FROM produits WHERE attributs @> '{"couleur": "bleu"}';

    Les transactions sur la structure

    Dans PostgreSQL, une migration qui crée une table, ajoute une colonne et modifie des données peut être exécutée dans une seule transaction : si une étape échoue, tout est annulé. Dans MySQL, les instructions comme CREATE TABLE ou ALTER TABLE provoquent une validation implicite de la transaction. Une migration interrompue peut donc laisser la base dans un état intermédiaire. Ce détail compte beaucoup pour les applications mises à jour souvent.

    Les extensions

    PostgreSQL permet d’ajouter des types, des fonctions et des index via des extensions. Les plus connues : PostGIS pour les données géographiques (calculs de distances, zones, itinéraires) et pgvector pour stocker et rechercher des vecteurs, utilisé dans les applications d’intelligence artificielle (recherche sémantique, assistants qui interrogent vos documents). Avec ces extensions, une seule base PostgreSQL remplace parfois deux ou trois outils spécialisés.

    La simplicité d’exploitation

    C’est le point fort de MySQL. Il est installé par défaut chez la quasi-totalité des hébergeurs, se gère avec phpMyAdmin depuis un panneau d’hébergement, et les développeurs PHP le connaissent bien. PostgreSQL demande un peu plus de réglages (mémoire, connexions, maintenance automatique) pour donner le meilleur de lui-même, et se trouve plutôt sur des serveurs dédiés, des VPS ou des offres cloud managées.

    PostgreSQL vs MySQL
    PostgreSQL vs MySQL

    Quand choisir PostgreSQL ?

    • Vous développez une application métier ou un SaaS avec des règles de gestion complexes, des rapports et des calculs.
    • L’intégrité des données est critique (facturation, stocks, données de santé) et vous voulez des contraintes strictes et des migrations sûres.
    • Vous avez des données semi-structurées (JSON) à interroger efficacement.
    • Vous manipulez des données géographiques ou prévoyez des fonctions d’IA reposant sur des vecteurs.
    • Votre framework s’y prête naturellement : Django, Ruby on Rails, Laravel ou Symfony fonctionnent très bien avec PostgreSQL.

    Quand choisir MySQL ?

    • Votre site repose sur WordPress, WooCommerce, PrestaShop, Drupal ou Joomla : ces CMS sont conçus pour MySQL ou MariaDB. WordPress ne prend pas en charge PostgreSQL de manière officielle.
    • Vous êtes sur un hébergement mutualisé, où MySQL ou MariaDB est souvent la seule option.
    • Votre application fait surtout des lectures simples à fort volume, avec un modèle de données peu complexe.
    • Votre équipe maîtrise déjà MySQL et n’a pas besoin des fonctions avancées de PostgreSQL. La compétence de l’équipe compte autant que le moteur.

    Pour un site vitrine ou une boutique WordPress, la question ne se pose donc pas : ce sera MySQL ou MariaDB. Elle se pose pour une application web sur mesure, où le choix de la base est une décision d’architecture à prendre tôt, en fonction des données et des évolutions prévues.

    Peut-on migrer de MySQL vers PostgreSQL ?

    Oui, mais ce n’est pas un simple export et import. Les types de données ne correspondent pas tous (booléens, dates, auto-incréments), certaines syntaxes SQL diffèrent, et le code de l’application qui utilise des fonctions propres à MySQL doit être adapté. Des outils open source comme pgloader automatisent une grande partie du transfert des données, mais il faut prévoir une phase de tests complète.

    Une migration se justifie quand vous butez sur une vraie limite (requêtes complexes lentes, besoin de JSON indexé, de géographie ou de vecteurs), pas par effet de mode. Pour sauvegarder et restaurer une base PostgreSQL, consultez notre article PostgreSQL : comment vider et restaurer la base de données.

    Vous hésitez entre les deux pour un projet ? Décrivez-nous vos données et vos usages à contact@osmova.com ou via notre formulaire de contact.

    Questions fréquentes

    PostgreSQL est-il gratuit ?

    Oui, totalement, y compris pour un usage commercial. Sa licence permissive autorise à l’utiliser, le modifier et le distribuer sans reverser de code. Vous ne payez que l’hébergement ou un éventuel support.

    MySQL est-il gratuit ?

    La version Community est gratuite sous licence GPLv2. Une licence commerciale est nécessaire seulement si vous distribuez un logiciel qui embarque MySQL sans vouloir le soumettre à la GPL. Oracle vend aussi des éditions Enterprise avec support et outils supplémentaires.

    WordPress fonctionne-t-il avec PostgreSQL ?

    Pas officiellement. Les prérequis de WordPress mentionnent uniquement MySQL (8.0 ou plus recommandé) et MariaDB (10.11 ou plus recommandé). Des adaptations non officielles existent, mais elles sont déconseillées pour un site professionnel.

    MariaDB ou MySQL : quelle différence ?

    MariaDB est un fork de MySQL créé en 2009 par des développeurs d’origine de MySQL. Les deux restent largement compatibles pour un usage courant, mais leurs fonctions avancées divergent au fil des versions. Pour WordPress, les deux conviennent.

    PostgreSQL remplace-t-il une base NoSQL comme MongoDB ?

    Pour beaucoup de projets, oui : le type jsonb indexé couvre les besoins de stockage de documents tout en gardant les jointures et les transactions. Une base NoSQL spécialisée reste pertinente pour des volumes ou des modèles de distribution très particuliers.

    Sources

    Continuez votre lecture

    Articles sur le même sujet : Application web sur mesure

    difference-entre-une-application-native-et-une-application-Web
    Développement web

    Application native ou application web : quelles différences et comment choisir ?

    Une application native s'installe depuis un store et exploite tout le téléphone, une application web tourne dans le…

    Quest-ce-que-le-prototypage-logiciel
    Développement web

    Prototypage logiciel : définition, types, étapes et outils

    Le prototypage logiciel permet de tester une application avec de vrais utilisateurs avant de la développer. Types de…

    les-tendances-developpement-web-en-2021
    Développement web

    Tendances du développement web : les 10 évolutions à suivre

    IA dans le code et dans les interfaces, performance, rendu serveur, PWA, accessibilité devenue obligatoire, sécurité : voici…

    node-4
    Développement web

    Node.js backend : ce que c’est, comment ça marche, et quand l’utiliser

    Cet article aborde l'essentiel : ce que Node.js fait réellement côté serveur, en quoi il se distingue des…