Table des matières
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: