Les base de données

Les bases de données MySQL, MariaDB et PostgreSQL sont des systèmes de gestion de bases de données relationnelles (SGBDR) populaires. Voici une comparaison de leurs différences en termes de fonctionnalités, de performance, de licence et d'écosystème.

Toutes les bases de données sont accessible en instance docker via l'interface https://portainer.ecolab.local.

1. MySQL

  • Origine : Créé en 1995, aujourd'hui détenu par Oracle Corporation.
  • Licence : Double licence, à la fois GPL (open source) et commerciale.
  • Caractéristiques :
    • Populaire pour les applications web (souvent utilisé avec PHP dans la stack LAMP).
    • Supporte plusieurs moteurs de stockage (InnoDB, MyISAM, etc.), avec InnoDB comme moteur par défaut.
    • Simple à utiliser et largement documenté.
  • Limitations :
    • Moins riche en fonctionnalités avancées que PostgreSQL.
    • Certaines fonctionnalités avancées sont payantes via Oracle.
  • Utilisation typique : Sites web, petites et moyennes applications.

2. MariaDB

  • Origine : Fork de MySQL, créé en 2009 par les fondateurs de MySQL après son acquisition par Oracle.
  • Licence : 100 % open source (GPL).
  • Caractéristiques :
    • Compatible avec MySQL (même syntaxe, outils et drivers).
    • Plus rapide dans certains cas grâce à des optimisations spécifiques.
    • Intègre des fonctionnalités avancées non disponibles dans MySQL communautaire.
    • Ajoute régulièrement des améliorations et des extensions par rapport à MySQL.
  • Utilisation typique : Projets souhaitant rester open source tout en bénéficiant de compatibilités avec MySQL.

3. PostgreSQL

  • Origine : Créé en 1986, l'un des plus anciens SGBDR open source.
  • Licence : Licence PostgreSQL, permissive et open source.
  • Caractéristiques :
    • Connu pour être “la base de données la plus avancée” avec un riche ensemble de fonctionnalités.
    • Support natif des données JSON (utilisable comme une base NoSQL hybride).
    • Transactions robustes avec support complet de l'ACID.
    • Extensible : possibilité d'ajouter des types de données, des extensions, etc.
    • Optimisé pour les applications nécessitant des performances élevées et des traitements complexes.
  • Limitations :
    • Courbe d'apprentissage légèrement plus raide.
    • Moins utilisé dans les applications web simples que MySQL/MariaDB.
  • Utilisation typique : Projets complexes, Big Data, applications géospatiales (avec PostGIS), et systèmes transactionnels critiques.

Comparaison résumée

Caractéristique MySQL MariaDB PostgreSQL
Licence Open source + Commercial Open source (GPL) Open source (BSD)
Performances Bonnes Optimisé Très performantes
Fonctionnalités avancées Moins riches Plus avancées que MySQL Très riches (ACID, JSON)
Popularité Très populaire Populaire Populaire pour les cas complexes
Extensibilité Limitée Limitée Très extensible
Facilité d'utilisation Facile Facile Complexe

En résumé

  • MySQL est idéal pour les projets simples ou lorsqu'une compatibilité avec Oracle est importante.
  • MariaDB est souvent préféré pour des projets open source ou pour remplacer MySQL sans compromis.
  • PostgreSQL est le meilleur choix pour les projets complexes nécessitant des fonctionnalités avancées ou une extensibilité importante.

Docker-Compose du service :

MariaDb

version: '3.1'

services:
  db:
    image: mariadb:latest
    container_name : mariadb
    restart: always
    environment:
      MARIADB_ROOT_PASSWORD: monpassword
    ports:
      - 3306:3306
    volumes:
      - /home/docker/mariadb:/var/lib/mysql

volumes:
  mariadb: