MySQL
Présentation générale
MySQL est un SGBD relationnel libre, fondé sur le langage SQL, et historiquement développé par la société MySQL AB. Il est aujourd’hui édité par Oracle Corporation, à la suite du rachat de Sun Microsystems en 2010. MySQL s’impose comme l’un des SGBD les plus répandus au monde, notamment dans le développement d’applications web et l’open source.
Le nom « MySQL » provient de « My », la fille d'un des cofondateurs, Michael "Monty" Widenius, et de l'acronyme de Structured Query Language.
Histoire et développement
MySQL a été créé en 1995 par Michael Widenius, David Axmark et Allan Larsson, sous l’égide de MySQL AB, une société suédoise. Le projet s’inspire d’un ancien moteur de base de données, mSQL, tout en proposant une plus grande performance et extensibilité. Sa popularité décolle rapidement avec l’avènement des services internet et des applications web utilisant la pile LAMP (Linux, Apache, MySQL et PHP/Perl/Python).
En 2008, MySQL est racheté par Sun Microsystems, elle-même acquise par Oracle Corporation en 2010, faisant de cette dernière l'éditeur officiel de MySQL. Parallèlement, la communauté du logiciel libre et certains développeurs historiques, tel Michael Widenius, fondent des projets dérivés tels que MariaDB pour garantir la pérénnité du logiciel libre dans le domaine des bases de données relationnelles.
Fonctionnalités principales
MySQL offre de nombreuses fonctionnalités qui le rendent attractif pour différents usages :
- Stockage de données relationnel
- Support du langage SQL
- Gestion de plusieurs moteurs de stockage (InnoDB, MyISAM, MEMORY, CSV, etc.)
- Transactions sécurisées avec InnoDB
- Réplication de données (master-slave, master-master)
- Verrouillage au niveau des tables et des lignes
- Gestion avancée des droits d'accès
- Procédures stockées, déclencheurs (triggers), et vues
- Support des clés étrangères, contraintes d’intégrité et normalisation des données
- Haute performance et scalabilité
- Prise en charge du partitionnement, sharding, backup à chaud
- ODBC, JDBC, API en plusieurs langages (C, C++, Java, PHP, Python, Ruby, Perl, .NET)
Architecture technique
Moteurs de stockage
MySQL se distingue par la possibilité d’employer différents moteurs de stockage, chacun adapté à des usages spécifiques.
| Moteur de stockage | Description |
|---|---|
| InnoDB | Moteur transactionnel par défaut, supporte les transactions ACID, les clés étrangères, le verrouillage au niveau des lignes. |
| MyISAM | Moteur historique, orienté performance, sans gestion des transactions. |
| MEMORY | Stocke les données en RAM, utilisé pour des accès très rapides. |
| CSV | Permet de stocker les données sous forme de fichiers texte CSV. |
| Archive | Optimisé pour l’archivage massif de données. |
| NDB | Utilisé pour les clusters MySQL, offre répartition et tolérance aux pannes. |
Réplication et haute disponibilité
MySQL intègre des mécanismes de réplication, essentiels pour l’haute disponibilité et la répartition de la charge :
- Réplication asynchrone (mode traditionnel)
- Réplication semi-synchrone
- Clustering avec MySQL NDB Cluster
- Fonctionnalités de partitionnement et cascading replication
Utilisations dans l’administration publique
Dans le contexte de la fonction publique, MySQL est largement déployé pour la gestion de systèmes d’information, de portails collaboratifs, de bases de données d’usagers, ainsi que dans les applications de gestion des ressources humaines ('GRH'), des finances ou des infrastructures municipales et territoriales.
Parmi les cas d’usages courants :
- Intranet ou Extranet collaboratifs
- Gestion des usagers
- Applications SIG (systèmes d'information géographique)
- Portails de e-administration, de gestion des concours, de candidatures en fonction publique territoriale
- Intégration dans des plates-formes CMS (systèmes de gestion de contenus) comme WordPress, Drupal, Joomla!
Les exigences de sécurité (RGPD, anonymisation, traçabilité) sont compatibles avec les dernières versions de MySQL, qui propose l’encryption native des données, les audit logs et des politiques d’accès affinées.
Versions et licences
MySQL est disponible sous une double licence :
- Licence GPL, open source
- Licence commerciale délivrée par Oracle Corporation
| Version | Date de sortie | Statut | Licence principale |
|---|---|---|---|
| 3.x à 5.1 | 1996–2008 | Anciennes versions | GPL |
| 5.5 | 2010 | Support terminé | GPL |
| 5.6 | 2013 | Support terminé | GPL |
| 5.7 | 2015 | Support partiel | GPL |
| 8.0 | 2018 | Actuelle (maintenue) | GPL / Commerciale |
Des dérivés existent, comme MariaDB (créé par Michael Widenius), Percona Server ou Amazon Aurora, chacun ajoutant des fonctionnalités ou optimisations spécifiques.
Outils et interfaces
MySQL s’administre en ligne de commandes via mysql (commande), mais de nombreux outils graphiques ont émergé :
- phpMyAdmin : Interface web populaire d’administration
- MySQL Workbench : Outil graphique officiel (modélisation, administration, requêtage)
- DBeaver, HeidiSQL, Navicat, Sequel Pro
L’API officielle MySQL permet l’intégration dans de nombreux langages de programmation : C, C++, Java, Python, PHP, Perl, Ruby.
MySQL et la communauté open source
Depuis ses débuts, MySQL bénéficie d’un important écosystème communautaire. De nombreux projets tiers enrichissent ses fonctionnalités (extensions de sécurité, moteurs supplémentaires, plugins d’audit). Des organisations à but non lucratif comme The MariaDB Foundation ou The Open Database Alliance militent activement pour l’interopérabilité et la souveraineté logicielle.
Concurrence et alternatives
Le paysage des bases de données relationnelles est marqué par la présence de plusieurs concurrents de MySQL, tels que :
- PostgreSQL : SGBD open source avancé
- Oracle
- Microsoft SQL Server
- SQLite
- IBM Db2
Certains sont privilégiés pour des applications transactionnelles, d’autres pour l’analytique ou la compatibilité avec des normes ISO.
Ressources et documentation
MySQL est largement documenté :
- La documentation officielle est disponible librement depuis le site de MySQL.
- Des forums spécialisés, des formations, ainsi qu’un réseau étendu de certification existent, et de nombreuses ressources sont traduites en français.