MySQL
Développé par | MySQL AB / Sun |
---|---|
Première version | |
Dernière version | 5.0.51a () |
Version avancée | 5.1.22rc () |
Dépôt | github.com/mysql/mysql-server |
Écrit en | C++ et C |
Système d'exploitation | Type Unix, Microsoft Windows, FreeBSD, Solaris, Linux et macOS |
Environnement | Multiplate-forme |
Formats lus | MySQL Table Definition Format (d) et MySQL View Definition Format (d) |
Formats écrits | MySQL Table Definition Format (d) et MySQL View Definition Format (d) |
Typ | Base de données relationnelle |
Licences | GPL et une licence propriétaire |
Seite web | www.mysql.com |
MySQL est un gestionnaire de base de données libre. Il est très utilisé dans les projets libres et dans le milieu industriel. MySQL AB a été acheté le 16 janvier 2008 par Sun Microsystems au coût de 1 milliard de dollars américains[1].
Caractéristiques
MySQL est un serveur de bases de données relationnelles SQL développé dans un souci de performances élevées. Il est multi-thread, multi-utilisateurs. C'est un logiciel libre développé sous double licence en fonction de l'utilisation qui en est faite : dans un produit libre (open-source) ou dans un produit propriétaire. Dans ce dernier cas, la licence est payante, sinon elle est libre.
Systèmes supportés
MySQL fonctionne sur beaucoup de plates-formes différentes, incluant AIX, BSDi, FreeBSD, HP-UX, Linux, Mac OS X, NetWare, NetBSD, OpenBSD, OS/2 Warp, SGI Irix, Solaris, SunOS, SCO OpenServer, SCO UnixWare, Tru64 Unix, Windows 95, 98, NT, 2000, XP et Vista.
Les bases de données sont accessibles en utilisant les langages de programmation C, C++, C#, Delphi / Kylix, Eiffel, Java, Perl, PHP, Python, Ruby et Tcl ; une API spécifique est disponible pour chacun d'entre eux. Une interface ODBC appelée MyODBC est aussi disponible. En Java, MySQL peut être utilisé de façon transparente avec le standard JDO.
Utilisation
MySQL fait partie du quatuor LAMP : Linux, Apache, MySQL, PHP. Le couple PHP/MySQL est très utilisé par les sites Web et proposé par la majorité des hébergeurs.
Wikipédia ainsi que de nombreuses autres entreprises et services tels que YouTube ou Adobe utilisent MySQL.
Dénomination
MySQL est l'œuvre d'une société suédoise, MySQL AB, fondée par David Axmark, Allan Larsson et Michael Widenius.
Le nom MySQL vient de leur habitude à préfixer par « My » une grande partie de leurs dossiers, bibliothèques et outils. La fille de Michael Widenius était surnommée « My ».
Le nom du logo de MySQL (le dauphin) Sakila, a été choisi par les créateurs de MySQL sur la base d'un concours. Il a été proposé par Ambrose Twebaze, développeur du Swaziland. D'après Ambrose, le nom Sakila puise ses origines du siswati, la langue locale du Swaziland.
Historique
La première version de MySQL est apparue le 23 mai 1995.
Il a d'abord été créé pour un usage personnel à partir de mSQL en s'appuyant sur le langage de bas niveau ISAM qu'ils trouvaient trop lent et trop rigide. Ils ont créé une nouvelle interface SQL en gardant la même API que mSQL.
MySQL est passé en licence GPL à partir de la version 3.23.19 (juin 2000)
- Version 4.0 : première version en octobre 2001, stable depuis mars 2003
- Version 4.1 : première version en avril 2003, stable depuis octobre 2004
- Version 5.0 : première version en décembre 2003, stable depuis octobre 2005
- Version 5.1 : première version en novembre 2005, Release Candidate distribuée depuis septembre 2007
- Version 5.2 : distribuée en avant-première (ajout du nouveau moteur de stockage Falcon) en février 2007, cette ligne a ensuite été renommée 6.0
- Version 6.0 : première version alpha en avril 2007
En 2003, MySQL AB et SAP concluent un accord. Le résultat s’appellera MaxDB. Il est issu de l'intégration du système de SAP (SAP DB) dans MySQL.
Moteurs de base de données inclus
Une des spécificités de MySQL est de pouvoir gérer plusieurs moteurs au sein d'une seule base. Chaque table peut utiliser un moteur différent au sein d'une base. Ceci afin d'optimiser l'utilisation de chaque table.
Voici les différents moteurs que MySQL gère :
- MyISAM : moteur par défaut de MySQL. Il est le plus simple à utiliser et mettre en œuvre. Il utilise plusieurs fichiers qui grandissent au fur et à mesure que la base grossit. Il ne supporte pas les transactions, ni les clefs étrangères.
- InnoDB : moteur créé et maintenu par InnoBase (Racheté par Oracle le 7 octobre 2005). Il gère les transactions et les clefs étrangères. En contrepartie, les bases qui l'utilisent occupent bien plus d'espace sur le disque.
- BerkeleyDB (BDB) : moteur fournis par Sleepycat Software qui gère les transactions.
- MERGE : moteur fait pour fusionner plusieurs tables qui doivent être identiques.
- ARCHIVE : moteur adapté à l'archivage de données. Les lignes sont compressées au fur et à mesure de leur insertion.
- MEMORY (HEAP) : moteur où les tables sont stockées uniquement en mémoire.
- CSV : moteur utilisant des fichiers textes (au format CSV) comme stockage.
- BLACKHOLE : moteur réceptionnant les données, les transférant mais ne les stockant pas. Il peut être utilisé comme répéteur ou comme filtre de données.
- ISAM : moteur d'origine de MySQL, maintenant obsolète et remplacé par MyISAM. Il est resté pour des raisons de compatibilité.
- NDB (uniquement dans la version MaxDB) : Network DataBase. Moteur de base de données réseau gérant le clustering.
- FEDERATED : moteur permettant d'accèder à des tables d'une base de données distantes plutôt que dans les fichiers locaux.
- EXEMPLE : moteur fictif et inutilisable, mis à disposition pour les développeurs.
Clustering
MySQL propose une solution de clustering depuis sa version 4.1 grâce au moteur de stockage NDB.
Sa structure se base sur la réplication des données, c'est-à-dire que chaque nœud de la grappe possédera une copie de la base localement.
Un répartisseur de charge va s'occuper de faire la requête au nœud le moins chargé de la grappe, il faut donc au minimum trois machines pour établir une solution de clustering MySQL. Si un des nœuds de la grappe ne répond plus, le répartisseur de charge n'enverra plus de requêtes vers celui-ci, la grappe pourra toujours fonctionner tant que au moins un nœud de la grappe sera toujours en état de marche.
Au niveau des performances, le temps de traitement des opérations de récupération de données sera réduit mais lors d'une modification des données (une requête UPDATE par exemple), celle-ci se fera sur chacun des nœuds de la grappe, il n'y a donc aucun gain à ce niveau, de plus, étant donné que la base se trouve sur chaque élément, il faut n fois le nombre d'espace disque nécessaire pour stocker les données au total (n représentant le nombre de nœuds). L'ajout d'un nouveau nœud peut se faire sans avoir besoin de re-partitionner la base.
Cette solution s'adapte donc à un cluster disposant d'un petit nombre de nœuds et lorsque la disponibilité et la sécurité des données est un problème critique.
Cette technique de réplication des données est aussi utilisée sur PostgreSQL avec pgCluster.
Voir aussi
Outils associés à MySQL
Produits de MySQL AB
- MySQL administrator, logiciel d'administration de bases de données.
- MySQL Query Browser[2]; interface graphique pour maintenir la base et y faire des requêtes.
- MySQL Workbench[3], logiciel de conception et de modélisation de base de données.
- MySQL Migration Toolkit[4], logiciel permettant de migrer votre base de données vers votre base de données MySQL.
Autres produits
- PhpMyAdmin, Un outil d'administration de bases de données MySQL écrit en php.
- eSKUeL[5], interface WEB en PHP d'administration d'une base MySQL.
- XAMPP, une solution complète web (Apache, MySQL, Mercury, PHP) sous licence GNU General Public License aussi bien pour Linux que pour Windows
- MysqlFront, logiciel pour créer et éditer des tables SQL (Maintenant interdit par MySql). Il a plusieurs clones heidisql et SQLyog .
Liens externes
- (en) Site officiel
- MySQL Performance
- (fr) Site web de MySQL francophone
- (fr) http://www.dmoz.org/World/Fran%c3%a7ais/Informatique/Logiciels/Outils_de_d%c3%a9veloppement/Bases_de_donn%c3%a9es/MySQL/ sur Curlie
Bibliographie
- Paul Dubois, Stefan Hinz, Carsten Pedersen (2004), MySQL - Guide officiel (ISBN 2-7440-1782-5)
- Michael Kofler (2005), MySQL 5 : Guide de l'administrateur et du développeur (ISBN 2212116330)