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.

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 ?
- Qu’est-ce que MySQL ?
- PostgreSQL vs MySQL : quelles différences en un tableau ?
- Lequel est le plus utilisé aujourd’hui ?
- Lequel est le plus performant ?
- Quelles fonctionnalités font vraiment la différence ?
- Quand choisir PostgreSQL ?
- Quand choisir MySQL ?
- Peut-on migrer de MySQL vers PostgreSQL ?
- Questions fréquentes
- Sources
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 : 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ère | PostgreSQL | MySQL |
|---|---|---|
| Type | Relationnel-objet, très extensible | Relationnel |
| Licence | Licence PostgreSQL (permissive) | GPLv2 ou licence commerciale Oracle |
| Gouvernance | Communauté indépendante | Oracle |
| Conformité ACID | Oui, par conception | Oui avec le moteur InnoDB (moteur par défaut) |
| Architecture des connexions | Un processus par connexion | Un processus serveur, un thread par connexion |
| DDL transactionnel | Oui : un CREATE ou ALTER TABLE peut être annulé dans une transaction | Non : les ordres DDL valident implicitement la transaction en cours |
| JSON | Types json et jsonb, jsonb indexable avec GIN | Type JSON natif, indexation via colonnes générées |
| Types avancés | Tableaux, plages, UUID, types géométriques, types personnalisés | Types SQL standards, types spatiaux |
| Index | B-tree, hash, GiST, SP-GiST, GIN, BRIN, index partiels et d’expression | B-tree, hash (selon le moteur), plein texte, spatiaux |
| Réplication | Asynchrone, synchrone, logique | Asynchrone par défaut, semi-synchrone, synchrone avec NDB Cluster |
| Extensions | Très riche (PostGIS, pgvector…) | Plus limité |
| Hébergement mutualisé | Rare | Quasi universel |
| Outils graphiques | pgAdmin, DBeaver | MySQL 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.

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
- PostgreSQL, présentation et fonctionnalités : postgresql.org/about
- PostgreSQL, politique de versions : postgresql.org/support/versioning
- PostgreSQL, licence : postgresql.org/about/licence
- PostgreSQL, architecture (un processus par connexion) : documentation
- PostgreSQL, types JSON : documentation
- MySQL, modèle de versions LTS et Innovation : dev.mysql.com
- MySQL, instructions provoquant une validation implicite : dev.mysql.com
- MySQL, InnoDB et le modèle ACID : dev.mysql.com
- MySQL, indexation des colonnes JSON via colonnes générées : dev.mysql.com
- MySQL, réplication : dev.mysql.com
- MySQL, licences : mysql.com
- MariaDB Foundation : mariadb.org/about
- Enquête Stack Overflow 2025, technologies : survey.stackoverflow.co
- Prérequis WordPress : wordpress.org/about/requirements
- pgloader, outil de migration vers PostgreSQL : pgloader.io
- PostGIS : postgis.net ; pgvector : github.com/pgvector





