mysql ?
MySQL (lecture / maɪ ˌ ɛskju ː ɛl / "My SQL" [1], officiellement, mais aussi communément / maɪ SI ː kwəl / "Ma suite») est un système de base de données relationnelle de gestion (SGBDR) [2] qui s'exécute comme un serveur fournissant multi-utilisateurs l'accès à un certain nombre de bases de données. Il est nommé d'après sa fille développeur Michael Widenius ', Mon. [3] L'expression est synonyme de SQL Structured Query Language [4].
Le projet de développement de MySQL a fait son code source est disponible sous les termes de la Licence Publique Générale GNU, ainsi que sous une variété d'accords exclusifs. MySQL a été détenue et financée par un seul but lucratif cabinet, la société suédoise MySQL AB, qui appartient maintenant à Oracle Corporation. [5]
Des projets de logiciels libres de source ouverte qui nécessitent un système complet de gestion de bases de données MySQL utilisent souvent. Pour un usage commercial, plusieurs éditions payantes sont disponibles, et d'offrir des fonctionnalités supplémentaires. Les applications qui utilisent des bases de données MySQL incluent: Typo3, Joomla, WordPress, MyBB, phpBB, Drupal et autres logiciels construits sur la pile logicielle LAMP. MySQL est également utilisé dans de nombreux haut-profil, des produits de grande envergure mondiale Wide Web, dont Wikipedia, Google [6] (mais pas pour les recherches), Facebook, [7] et Twitter. [8]
Contenu
[Cacher]
* Utilise une
* 2 plateformes et interfaces
* 3 Gestion et interfaces graphiques
o 3.1 officiel
o 3,2 tiers
ligne de commande o 3,3
* 4 de déploiement
* 5 Caractéristiques
o 5.1 Les signes distinctifs
o 5.2 Limites
Histoire * Produit 6
o 6.1 Les versions futures
* 7 de soutien et d'octroi de licences
* 8 l'histoire soutien d'entreprise
* 9 Forks
* 10 versions de MySQL
* 11 Voir aussi
* 12 Références
* 13 Liens externes
[Modifier] Utilisation
MySQL est un choix populaire de base de données pour une utilisation dans les applications web, et est une composante centrale de l'application logicielle LAMP Web largement utilisé la pile LAMP est un acronyme pour «Linux, Apache, MySQL, Perl / PHP / Python".
MySQL est utilisé dans certains des sites Web les plus visités sur Internet, y compris Flickr, [9] Nokia.com, [10] YouTube [11] et tel que mentionné précédemment, Wikipedia, [12], Google [13], Facebook [ 14] [15] et Twitter [16].
[Modifier] Plates-formes et interfaces
MySQL est écrit en C et C + +. Son analyseur SQL est écrit dans yacc, et un analyseur de la maison-brassée lexicale nommée sql_lex.cc [17].
MySQL fonctionne sur de nombreuses plateformes différentes du système, y compris AIX, BSDI, FreeBSD, HP-UX, eComStation, i5/OS, IRIX, Linux, Mac OS X, Microsoft Windows, NetBSD, Novell NetWare, OpenBSD, OpenSolaris, OS / 2 Warp, QNX, Solaris, Symbian, SunOS, SCO OpenServer, SCO UnixWare, Sanos et Tru64. Un port de MySQL pour OpenVMS existe aussi [18].
Nombreux langages de programmation avec le langage API spécifiques comprennent les bibliothèques pour accéder aux bases de données MySQL. Il s'agit notamment de MySQL Connector / Net pour l'intégration avec Microsoft Visual Studio (langages tels que C # et VB sont les plus couramment utilisés) et le pilote JDBC pour Java. En outre, une interface ODBC appelée MyODBC permet aux langages de programmation supplémentaires qui prennent en charge l'interface ODBC pour communiquer avec une base de données MySQL, tels que ASP ou ColdFusion. Le HTSQL - Méthode de requête URL basée également livré avec un adaptateur MySQL, permettant une interaction directe entre une base de données MySQL et n'importe quel client Web via des URLs structurés. Le serveur MySQL et les bibliothèques officielles sont principalement mises en œuvre en C ANSI / C + + ANSI.
[Modifier] Gestion et interfaces graphiques
MySQL Workbench dans Windows
MySQL est principalement un SGBDR et donc livré avec aucun outil GUI pour administrer des bases de données MySQL ou gérer les données contenues à l'intérieur. Les utilisateurs peuvent utiliser le comprenait outils ligne de commande [19], ou télécharger MySQL frontends de diverses parties qui ont développé des logiciels de bureau et des applications web pour gérer les bases de données MySQL, construire la structure de base de données, et travailler avec les enregistrements de données.
[Modifier] officiel
Le fonctionnaire MySQL Workbench est un environnement libre intégré développé par MySQL AB, qui permet aux utilisateurs d'administrer graphiquement les bases de données MySQL et visuellement la structure des bases de conception. MySQL Workbench remplace le paquet antérieure du logiciel, Outils MySQL GUI. Semblable à d'autres logiciels tiers, mais toujours considéré comme le frontend autorité MySQL, MySQL Workbench permet aux utilisateurs de gérer les éléments suivants:
Conception de bases de données et modélisation *
* Développement SQL - Navigateur remplaçant de requêtes MySQL
* Base de données d'administration - le remplacement de MySQL Administrator
MySQL Workbench est disponible en deux éditions, l'édition libre et régulière communauté open source qui peut être téléchargé depuis le site de MySQL, et l'édition standard propriétaires qui prolonge et améliore l'ensemble des fonctionnalités de l'édition communautaire.
[Modifier] Troisième partie
Tiers propriétaires et applications sans administration graphique (ou "frontaux") sont disponibles qui intègrent avec MySQL et permettre aux utilisateurs de travailler avec la structure des bases de données et visuellement. Certains frontaux bien connu, dans l'ordre alphabétique, sont:
* Adminer - une extrémité libre avant MySQL écrite dans un script PHP, capable de gérer plusieurs bases de données, avec des peaux CSS disponibles sont nombreuses.
* DBEdit - une extrémité libre avant pour MySQL et autres bases de données.
* DbForge GUI Tools - un ensemble d'outils pour la gestion de base de données qui inclut des applications distinctes pour la comparaison de schémas et de synchronisation, la comparaison des données et de synchronisation, et les requêtes du bâtiment.
* HeidiSQL - une pleine fin de vedette avant libre qui fonctionne sur Windows, et peut se connecter à des serveurs locaux ou distants MySQL pour gérer les bases de données, des tableaux, la structure de colonnes et des données individuelles. Prend également en charge spécialisée fonctionnalités GUI pour champs date / heure et il a énuméré plusieurs champs de valeur [20].
* Base de LibreOffice - LibreOffice Base permet la création et la gestion des bases de données, la préparation de formulaires et de rapports qui fournissent aux utilisateurs finaux un accès facile aux données. Comme Access, il peut être utilisé comme un front-end pour les systèmes de bases de données différentes, y compris les bases de données Access (JET), sources de données ODBC et MySQL ou PostgreSQL. [21]
* Navicat - une série d'applications de gestion graphique propriétaire de bases de données, développé pour Windows, Macintosh et Linux.
* OpenOffice.org - OpenOffice.org Base permet de gérer des bases de données MySQL. (Vous devez installer l'ensemble de la suite OpenOffice.org. Il est gratuit et open source.)
* PhpMyAdmin - une fin basée sur le Web gratuitement devant largement installé par les hébergeurs dans le monde entier, car il est développé en PHP et est inclus dans la pile LAMP pratique, MAMP, WAMP et installateurs bundle de logiciels.
Toad pour MySQL * - un développement libre et frontale d'administration pour MySQL à partir de Quest Software
Autre disposition exclusive des frontaux MySQL incluent dbForge Studio for MySQL, Epictète, Oracle SQL Developer, SchemaBank, SQLyog, SQLPro client SQL, Toad Data Modeler,
[Modifier] Ligne de commande
Navires de MySQL avec une suite d'outils ligne de commande pour des tâches telles que l'interrogation de la base de données, la sauvegarde des données, l'inspection d'état, l'exécution des tâches courantes telles que la création d'une base de données, et beaucoup plus. Une variété de tiers outils ligne de commande est également disponible, y compris Maatkit, ce qui est écrit en Perl.
[Modifier] Déploiement
MySQL peut être construit et installé manuellement à partir du code source, mais cela peut être fastidieux de sorte qu'il est plus couramment installés à partir d'un paquet binaire à moins personnalisations spéciales sont requises. Sur la plupart des distributions Linux, le système de gestion de paquets peuvent télécharger et installer MySQL avec un effort minimal, même si la configuration supplémentaire est souvent nécessaire d'ajuster les paramètres de sécurité et d'optimisation.
Bien que MySQL a commencé comme une alternative bas de gamme à plus puissantes bases de données propriétaires, il a progressivement évolué pour soutenir la hausse échelle besoins aussi bien. Il est encore le plus couramment utilisé dans les petite et moyenne échelle des déploiements mono-serveur, soit comme composant dans une application web LAMP base ou comme un serveur de bases de données autonomes. Une grande partie de l'appel de MySQL provient de sa relative simplicité et la facilité d'utilisation, qui est activée par un écosystème d'outils open source tels que phpMyAdmin. Dans la gamme moyenne, MySQL peut être réduite par le déployer sur du matériel plus puissant, comme un serveur multi-processeur avec des gigaoctets de mémoire.
Il ya cependant des limites à ce que les performances peuvent évoluer sur un seul serveur, donc sur de plus grandes échelles, multi-serveur MySQL déploiements sont nécessaires pour fournir une performance et une fiabilité améliorées. Un typiques configuration haut de gamme peut inclure une base de données maître puissant qui gère les données et les opérations d'écriture sont répliquées sur plusieurs esclaves qui gèrent toutes les opérations de lecture. [22] Le serveur maître synchronise en permanence avec ses esclaves afin, en cas de défaillance d'un esclave peut être promu pour devenir le nouveau maître, en minimisant les temps d'arrêt. D'autres améliorations de la performance peut être atteint en mettant en cache les résultats de requêtes de bases de données en mémoire en utilisant memcached, ou décomposer une base de données en plus petits morceaux appelés éclats qui peuvent être réparties sur un certain nombre de clusters de serveurs distribués. [23]
[Modifier] Caractéristiques
En avril 2009 [mise à jour], MySQL offre MySQL 5.1 en deux variantes: l'open source MySQL Community Server et Enterprise Server commerciales. MySQL 5.5 est offert sous les mêmes licences [24] Ils ont une base de code commune et comprennent les caractéristiques suivantes.:
* Un vaste sous-ensemble du SQL ANSI 99, ainsi que des extensions
* Multiplate-forme
* Les procédures stockées
* Déclencheurs
* Curseurs
* Vues actualisables
* Un soutien véritable Varchar
Des schémas d'informations *
* Le mode strict [explication supplémentaire nécessaire]
* X / Open XA de traitement des transactions distribuées (DTC) de soutien, deux phases dans le cadre de ce, en utilisant le moteur Oracle InnoDB
* Moteurs de stockage indépendants (MyISAM pour une vitesse de lecture, InnoDB pour les transactions et l'intégrité référentielle, MySQL Archive pour stocker des données historiques dans peu d'espace)
* Transactions avec les tables InnoDB, et les moteurs de stockage en cluster; les points de sauvegarde avec InnoDB
* Le support SSL
La mise en cache de requêtes *
* Sous-sélections (soit imbriquées Selects)
En charge la réplication * (c'est à dire maître-maître de la réplication et la réplication maître-esclave) avec un seul maître par esclave, beaucoup d'esclaves par maître, aucun soutien automatique à plusieurs maîtres par esclave.
* Indexation en texte intégral et la recherche en utilisant MyISAM moteur
* Bibliothèque de base de données embarquée
* Prise en charge partielle Unicode (UTF-8 et UCS-2 chaînes encodées sont limitées à la BMP)
La conformité ACID * Lorsque vous utilisez des moteurs de transaction de stockage capable (InnoDB et Cluster) [25]
* Tableaux Partititoned avec élagage des partitions dans l'optimiseur
* Shared-nothing regroupement grâce à MySQL Cluster
* Sauvegarde à chaud (via mysqlhotcopy) sous certaines conditions [26]
Les développeurs des versions mensuelles du serveur MySQL. Les sources peuvent être obtenus sur le site web de MySQL ou de dépôt Bazaar MySQL, tous deux sous la licence GPL.
[Modifier] Les signes distinctifs
MySQL implémente les fonctionnalités suivantes, dont certaines d'autres systèmes SGBDR ne peut pas:
* Moteurs de stockage multiples, permettant de choisir celui qui est le plus efficace pour chaque table dans la requête (en MySQL 5.0, moteurs de stockage doit être compilé en; dans MySQL 5.1, moteurs de stockage peuvent être chargés dynamiquement au moment de l'exécution):
o moteurs de stockage native (MyISAM, Falcon, Merge, mémoire (heap), Federated, Archive, CSV, Blackhole, Cluster, PAR EXEMPLE, Maria, et InnoDB, qui a été fait par défaut à partir de 5.5)
Partenaire-développés o moteurs de stockage (solidDB, NitroEDB, Infobright (anciennement Brighthouse), Kickfire, XtraDB, IBM DB2). [27] InnoDB utilisé pour être un partenaire développé moteur de stockage, mais avec les récentes acquisitions, Oracle possède désormais deux principaux MySQL et InnoDB.
o Communauté développé des moteurs de stockage (moteur memcache, httpd, PBXT, moteur des versions)
o moteurs de stockage personnalisés
* S'engager regroupement, la collecte des transactions multiples de connexions multiples ensemble pour augmenter le nombre de validations par seconde.
[Modifier] Limites
MySQL ne dispose pas actuellement conformes à la norme SQL pour certaines des fonctionnalités mises en œuvre, y compris des questions telles que le silence ignorer de SQL syntaxe standard [28]. Déclencheurs sont actuellement limités à un par action / calendrier, à savoir un maximum après insertion et un avant d'insérer le la même table. [29] Il n'ya pas de déclencheurs sur vues [29].
[Modifier] L'histoire des produits
Étapes dans le développement de MySQL incluent:
* Le développement original de MySQL par Michael Widenius et David Axmark à partir de 1994 [30]
* Première version interne le 23 mai 1995
* Version de Windows a été libéré le 8 Janvier 1998 pour Windows 95 et NT
* Version 3.23: beta de Juin 2000, la production communiqué Janvier 2001
* Version 4.0: bêta à partir d'août 2002, la production de presse Mars 2003 (syndicats)
* Version 4.01: beta à partir d'août 2003, Jyoti adopte MySQL pour le suivi de base de données
* Version 4.1: bêta à partir de Juin 2004, la production communiqué Octobre 2004 (R-arbres et B-arbres, les sous-requêtes, les requêtes préparées)
Version de production bêta à partir de Mars 2005, Octobre 2005 (curseurs, procédures stockées, triggers, vues, les transactions XA): * Version 5.0
Le développeur des États fédérés Storage Engine que «Le moteur de stockage Federated est un moteur de stockage proof-of-concept» [31], mais les principales distributions de MySQL version 5.0 elle comprenait et elle est activée par défaut. Documentation d'une partie des allées court apparaît dans «Tableaux fédérés MySQL: The Missing Manual" [32].
* Sun Microsystems a acquis MySQL AB, le 26 Février 2008. [5]
* Version 5.1: 27 version de production Novembre 2008 (Event Scheduler, partitionnement, Plugin API, ligne basé sur la réplication, tables de log du serveur)
La version 5.1 contient 20 connues de s'écraser et de bogues mauvais résultat, en plus de l'actuel 35 dans la version 5.0 (presque tous les fixes de libération 01/05/51) [33].
MySQL 5.1 et 6.0 montrent mauvaise performance lorsqu'il est utilisé pour l'entreposage de données -. Partie à cause de son incapacité à utiliser les multiples cœurs de processeurs pour le traitement d'une requête unique [34]
* Oracle a acquis Sun Microsystems, le 27 Janvier 2010. [35]
* MySQL Server 5.5 est actuellement généralement disponibles (comme de Décembre 2010 [update]). Améliorations et caractéristiques comprennent:
o Le moteur de stockage InnoDB par défaut est, qui supporte les transactions et les contraintes d'intégrité référentielle.
o Amélioration de InnoDB système E / S [36]
o Amélioration de support SMP [37]
o la réplication semi-synchrone.
o SIGNAL et RESIGNAL exposé en conformité avec le standard SQL.
o Prise en charge de caractères supplémentaires Unicode UTF16 ensembles, UTF32, et utf8mb4.
o options Nouveau définis par l'utilisateur de partitionnement.
[Modifier] Les versions futures
Le serveur MySQL 6.0.11-alpha a été annoncé le 22 mai 2009 que la dernière version de la ligne 6.0. Futur développement de serveur MySQL utilise un modèle Nouveaux. Caractéristiques développé pour 6,0 sont intégrées dans les versions futures.
MySQL 5.6, une version d'étape de développement, a été annoncée à la conférence des utilisateurs MySQL 2011. Les nouvelles fonctionnalités comprennent des améliorations de performance pour l'optimiseur de requêtes, un débit plus élevé transactionnel de InnoDB, nouvelle API NoSQL style memcached, l'amélioration de partitionnement permettant d'interroger et de gérer de très grandes tables, des améliorations de la réplication et la surveillance de meilleures performances en élargissant les données disponibles à travers le PERFORMANCE_SCHEMA. [38] En Juillet aperçus plus loin avec une API binlog, groupe commettre, et la recherche InnoDB texte intégral ont été libérés.
[Modifier] Soutien et d'octroi de licences
Cette section peut être écrit comme une publicité. S'il vous plaît aider à améliorer par la réécriture du contenu promotionnel à partir d'un point de vue neutre et en supprimant les liens inappropriés externes. (Septembre 2011)
MySQL offre un soutien par le biais de leur produit MySQL Enterprise, y compris un service de soutien. Le soutien communique avec les développeurs que nécessaire pour traiter les problèmes. En outre, elle héberge des forums et listes de diffusion, les employés et les autres utilisateurs sont souvent disponibles en plusieurs canaux IRC fournir une assistance.
Les acheteurs de MySQL Enterprise ont accès à des binaires et des logiciels certifiés pour leur système d'exploitation particulier, et l'accès aux mises à jour binaires mensuelles avec les dernières corrections de bogues. Plusieurs niveaux d'adhésion d'entreprise sont disponibles, avec différents temps de réponse et caractéristiques allant de comment et de soutien d'urgence à travers l'optimisation des performances du serveur et des conseils d'architecture système. La surveillance du réseau consultatif sur MySQL et outil de contrôle de service pour les serveurs de bases de données est uniquement disponible pour les abonnés à MySQL Enterprise.
Les utilisateurs potentiels peuvent installer le serveur MySQL en tant que logiciel libre sous licence GNU General Public License (GPL), et les abonnements MySQL Enterprise comprend une version GPL du serveur, avec une version propriétaire classique disponible sur demande sans frais supplémentaires pour les cas où l'usage prévu est incompatible avec la GPL [39].
Tant le logiciel de serveur MySQL lui-même et les bibliothèques clientes utilisent la double licence de distribution. Les utilisateurs peuvent choisir la GPL [40], dont MySQL a étendu avec une exception de licence FLOSS. Il permet au logiciel sous licence OSI d'autres conformes licences open source, qui ne sont pas compatibles avec la GPL, à se lier à la bibliothèque cliente MySQL [41].
Les clients qui ne souhaitent pas suivre les termes de la GPL peuvent acheter une licence exclusive [42].
Comme de nombreux programmes open source, MySQL a trademarked son nom, qui d'autres peuvent utiliser uniquement avec la permission du titulaire de la marque [43].
[Modifier] Historique soutien d'entreprise
En Octobre 2005, Oracle Corporation a acquis Innobase OY, la société finlandaise qui a développé le moteur de stockage tiers InnoDB de MySQL qui permet de fournir des fonctionnalités telles que les transactions et les clés étrangères. Après l'acquisition, un communiqué de presse d'Oracle a mentionné que les contrats qui font de logiciels disponibles pour MySQL AB, la société serait due pour le renouvellement (et probablement de renégociation) un certain temps en 2006. [44] Pendant des utilisateurs de MySQL à la Conférence en avril 2006, MySQL a publié un communiqué de presse qui a confirmé que MySQL et Innobase OY ont convenu d'un "multi-années" extension de leur accord de licence [45].
En Février 2006, Oracle Corporation a acquis Sleepycat Software, [46] les responsables de la DB de Berkeley, un moteur de base de données fournissant la base pour un autre moteur de stockage MySQL. Cela a eu peu d'effet, comme Berkeley DB n'a pas été largement utilisé et a été abandonné (à cause du manque d'utilisation) dans MySQL 5.1.12, une pré-version GA de MySQL 5.1 sorti en Octobre 2006. [47]
En Janvier 2008, Sun Microsystems a acheté MySQL pour 1 milliard de dollars [48].
En avril 2009, Oracle Corporation a conclu une entente visant l'acquisition de Sun Microsystems, [49] alors propriétaires de MySQL copyright et de marques. Conseil d'administration de Sun d'administration a unanimement approuvé la transaction, il a également été approuvé par les actionnaires de Sun, et par le gouvernement américain, le 20 août 2009. [50] Sur Décembre 14, 2009, Oracle s'est engagé à continuer d'améliorer MySQL [51] comme il l'avait fait pour les quatre années précédentes.
Un mouvement contre l'acquisition par Oracle de MySQL, pour «Sauver MySQL» [52] à partir d'Oracle a été lancé par l'un des fondateurs de MySQL, Monty Widenius. La pétition de 50.000 développeurs et utilisateurs + appelé la Commission européenne pour bloquer l'approbation de l'acquisition. Dans le même temps, plusieurs leaders d'opinion libre du logiciel (y compris Eben Moglen, Pamela Jones de Groklaw, Jan Wildeboer et Carlo Piana, qui a également agi comme co-conseil dans la procédure de règlement sur les concentrations) préconisée pour l'approbation inconditionnelle de la fusion. Citations [ nécessaire] Dans le cadre des négociations avec la Commission européenne, Oracle s'est engagé ce serveur MySQL continuera d'utiliser la stratégie de double licence utilisée depuis longtemps par MySQL AB avec les versions commerciales et GPL disponible au moins jusqu'en 2015. Les lois antitrust de l'UE avait été «la pressant de se départir de MySQL en tant que condition pour l'approbation de la fusion." Mais, comme l'a révélé par Wikileaks, le département américain de la Justice et antitrust, à la demande d'Oracle, sous la pression de l'UE à approuver la fusion sans conditions. [53] L'acquisition par Oracle a finalement été approuvée sans conditions par la Commission européenne le 21 Janvier 2010. [54]
Pendant ce temps, Monty Widenius a publié un fork GPL uniquement, MariaDB. MariaDB est basé sur la même base de code que le serveur MySQL et s'efforce de maintenir la compatibilité avec les versions d'Oracle fournis [55].
[Modifier] Forks
* Arroser - une fourchette ciblée sur le web-infrastructure et des marchés du cloud computing. Les développeurs du produit le décrire comme un «plus petit, plus mince et plus (j'espère) version plus rapide de MySQL». En tant que tel est prévu d'avoir de nombreuses caractéristiques communes MySQL supprimés, y compris les procédures stockées, cache de requête, les requêtes préparées, des vues et des triggers. Ceci est une réécriture complète du serveur qui n'a pas de maintenir la compatibilité avec MySQL.
* MariaDB - une branche communautaire développée de la base de données MySQL, l'impulsion étant le maintien de son statut de communauté libre sous licence GPL, par opposition à toute incertitude du statut de la licence de MySQL sous sa propriété actuelle par Oracle. Le but étant aussi de maintenir la haute fidélité avec MySQL, assurant un «drop-in" capacité de remplacement avec l'équivalence binaires bibliothèque et correspondant exigeants avec MySQL API et les commandes. Il inclut le moteur de stockage XtraDB comme un remplacement pour InnoDB.
* Percona Server - une fourchette qui comprend le moteur de stockage XtraDB. C'est une version améliorée de MySQL, qui est entièrement compatible, et s'écarte aussi peu que possible d'elle, tout en fournissant toujours bénéfique de nouvelles fonctionnalités, une meilleure performance, et l'instrumentation améliorée pour l'analyse des performances et l'utilisation.
* OurDelta - une fourchette compilées avec des taches diverses, y compris les correctifs de MariaDB, Percona, et Google.
Le projet de développement de MySQL a fait son code source est disponible sous les termes de la Licence Publique Générale GNU, ainsi que sous une variété d'accords exclusifs. MySQL a été détenue et financée par un seul but lucratif cabinet, la société suédoise MySQL AB, qui appartient maintenant à Oracle Corporation. [5]
Des projets de logiciels libres de source ouverte qui nécessitent un système complet de gestion de bases de données MySQL utilisent souvent. Pour un usage commercial, plusieurs éditions payantes sont disponibles, et d'offrir des fonctionnalités supplémentaires. Les applications qui utilisent des bases de données MySQL incluent: Typo3, Joomla, WordPress, MyBB, phpBB, Drupal et autres logiciels construits sur la pile logicielle LAMP. MySQL est également utilisé dans de nombreux haut-profil, des produits de grande envergure mondiale Wide Web, dont Wikipedia, Google [6] (mais pas pour les recherches), Facebook, [7] et Twitter. [8]
Contenu
[Cacher]
* Utilise une
* 2 plateformes et interfaces
* 3 Gestion et interfaces graphiques
o 3.1 officiel
o 3,2 tiers
ligne de commande o 3,3
* 4 de déploiement
* 5 Caractéristiques
o 5.1 Les signes distinctifs
o 5.2 Limites
Histoire * Produit 6
o 6.1 Les versions futures
* 7 de soutien et d'octroi de licences
* 8 l'histoire soutien d'entreprise
* 9 Forks
* 10 versions de MySQL
* 11 Voir aussi
* 12 Références
* 13 Liens externes
[Modifier] Utilisation
MySQL est un choix populaire de base de données pour une utilisation dans les applications web, et est une composante centrale de l'application logicielle LAMP Web largement utilisé la pile LAMP est un acronyme pour «Linux, Apache, MySQL, Perl / PHP / Python".
MySQL est utilisé dans certains des sites Web les plus visités sur Internet, y compris Flickr, [9] Nokia.com, [10] YouTube [11] et tel que mentionné précédemment, Wikipedia, [12], Google [13], Facebook [ 14] [15] et Twitter [16].
[Modifier] Plates-formes et interfaces
MySQL est écrit en C et C + +. Son analyseur SQL est écrit dans yacc, et un analyseur de la maison-brassée lexicale nommée sql_lex.cc [17].
MySQL fonctionne sur de nombreuses plateformes différentes du système, y compris AIX, BSDI, FreeBSD, HP-UX, eComStation, i5/OS, IRIX, Linux, Mac OS X, Microsoft Windows, NetBSD, Novell NetWare, OpenBSD, OpenSolaris, OS / 2 Warp, QNX, Solaris, Symbian, SunOS, SCO OpenServer, SCO UnixWare, Sanos et Tru64. Un port de MySQL pour OpenVMS existe aussi [18].
Nombreux langages de programmation avec le langage API spécifiques comprennent les bibliothèques pour accéder aux bases de données MySQL. Il s'agit notamment de MySQL Connector / Net pour l'intégration avec Microsoft Visual Studio (langages tels que C # et VB sont les plus couramment utilisés) et le pilote JDBC pour Java. En outre, une interface ODBC appelée MyODBC permet aux langages de programmation supplémentaires qui prennent en charge l'interface ODBC pour communiquer avec une base de données MySQL, tels que ASP ou ColdFusion. Le HTSQL - Méthode de requête URL basée également livré avec un adaptateur MySQL, permettant une interaction directe entre une base de données MySQL et n'importe quel client Web via des URLs structurés. Le serveur MySQL et les bibliothèques officielles sont principalement mises en œuvre en C ANSI / C + + ANSI.
[Modifier] Gestion et interfaces graphiques
MySQL Workbench dans Windows
MySQL est principalement un SGBDR et donc livré avec aucun outil GUI pour administrer des bases de données MySQL ou gérer les données contenues à l'intérieur. Les utilisateurs peuvent utiliser le comprenait outils ligne de commande [19], ou télécharger MySQL frontends de diverses parties qui ont développé des logiciels de bureau et des applications web pour gérer les bases de données MySQL, construire la structure de base de données, et travailler avec les enregistrements de données.
[Modifier] officiel
Le fonctionnaire MySQL Workbench est un environnement libre intégré développé par MySQL AB, qui permet aux utilisateurs d'administrer graphiquement les bases de données MySQL et visuellement la structure des bases de conception. MySQL Workbench remplace le paquet antérieure du logiciel, Outils MySQL GUI. Semblable à d'autres logiciels tiers, mais toujours considéré comme le frontend autorité MySQL, MySQL Workbench permet aux utilisateurs de gérer les éléments suivants:
Conception de bases de données et modélisation *
* Développement SQL - Navigateur remplaçant de requêtes MySQL
* Base de données d'administration - le remplacement de MySQL Administrator
MySQL Workbench est disponible en deux éditions, l'édition libre et régulière communauté open source qui peut être téléchargé depuis le site de MySQL, et l'édition standard propriétaires qui prolonge et améliore l'ensemble des fonctionnalités de l'édition communautaire.
[Modifier] Troisième partie
Tiers propriétaires et applications sans administration graphique (ou "frontaux") sont disponibles qui intègrent avec MySQL et permettre aux utilisateurs de travailler avec la structure des bases de données et visuellement. Certains frontaux bien connu, dans l'ordre alphabétique, sont:
* Adminer - une extrémité libre avant MySQL écrite dans un script PHP, capable de gérer plusieurs bases de données, avec des peaux CSS disponibles sont nombreuses.
* DBEdit - une extrémité libre avant pour MySQL et autres bases de données.
* DbForge GUI Tools - un ensemble d'outils pour la gestion de base de données qui inclut des applications distinctes pour la comparaison de schémas et de synchronisation, la comparaison des données et de synchronisation, et les requêtes du bâtiment.
* HeidiSQL - une pleine fin de vedette avant libre qui fonctionne sur Windows, et peut se connecter à des serveurs locaux ou distants MySQL pour gérer les bases de données, des tableaux, la structure de colonnes et des données individuelles. Prend également en charge spécialisée fonctionnalités GUI pour champs date / heure et il a énuméré plusieurs champs de valeur [20].
* Base de LibreOffice - LibreOffice Base permet la création et la gestion des bases de données, la préparation de formulaires et de rapports qui fournissent aux utilisateurs finaux un accès facile aux données. Comme Access, il peut être utilisé comme un front-end pour les systèmes de bases de données différentes, y compris les bases de données Access (JET), sources de données ODBC et MySQL ou PostgreSQL. [21]
* Navicat - une série d'applications de gestion graphique propriétaire de bases de données, développé pour Windows, Macintosh et Linux.
* OpenOffice.org - OpenOffice.org Base permet de gérer des bases de données MySQL. (Vous devez installer l'ensemble de la suite OpenOffice.org. Il est gratuit et open source.)
* PhpMyAdmin - une fin basée sur le Web gratuitement devant largement installé par les hébergeurs dans le monde entier, car il est développé en PHP et est inclus dans la pile LAMP pratique, MAMP, WAMP et installateurs bundle de logiciels.
Toad pour MySQL * - un développement libre et frontale d'administration pour MySQL à partir de Quest Software
Autre disposition exclusive des frontaux MySQL incluent dbForge Studio for MySQL, Epictète, Oracle SQL Developer, SchemaBank, SQLyog, SQLPro client SQL, Toad Data Modeler,
[Modifier] Ligne de commande
Navires de MySQL avec une suite d'outils ligne de commande pour des tâches telles que l'interrogation de la base de données, la sauvegarde des données, l'inspection d'état, l'exécution des tâches courantes telles que la création d'une base de données, et beaucoup plus. Une variété de tiers outils ligne de commande est également disponible, y compris Maatkit, ce qui est écrit en Perl.
[Modifier] Déploiement
MySQL peut être construit et installé manuellement à partir du code source, mais cela peut être fastidieux de sorte qu'il est plus couramment installés à partir d'un paquet binaire à moins personnalisations spéciales sont requises. Sur la plupart des distributions Linux, le système de gestion de paquets peuvent télécharger et installer MySQL avec un effort minimal, même si la configuration supplémentaire est souvent nécessaire d'ajuster les paramètres de sécurité et d'optimisation.
Bien que MySQL a commencé comme une alternative bas de gamme à plus puissantes bases de données propriétaires, il a progressivement évolué pour soutenir la hausse échelle besoins aussi bien. Il est encore le plus couramment utilisé dans les petite et moyenne échelle des déploiements mono-serveur, soit comme composant dans une application web LAMP base ou comme un serveur de bases de données autonomes. Une grande partie de l'appel de MySQL provient de sa relative simplicité et la facilité d'utilisation, qui est activée par un écosystème d'outils open source tels que phpMyAdmin. Dans la gamme moyenne, MySQL peut être réduite par le déployer sur du matériel plus puissant, comme un serveur multi-processeur avec des gigaoctets de mémoire.
Il ya cependant des limites à ce que les performances peuvent évoluer sur un seul serveur, donc sur de plus grandes échelles, multi-serveur MySQL déploiements sont nécessaires pour fournir une performance et une fiabilité améliorées. Un typiques configuration haut de gamme peut inclure une base de données maître puissant qui gère les données et les opérations d'écriture sont répliquées sur plusieurs esclaves qui gèrent toutes les opérations de lecture. [22] Le serveur maître synchronise en permanence avec ses esclaves afin, en cas de défaillance d'un esclave peut être promu pour devenir le nouveau maître, en minimisant les temps d'arrêt. D'autres améliorations de la performance peut être atteint en mettant en cache les résultats de requêtes de bases de données en mémoire en utilisant memcached, ou décomposer une base de données en plus petits morceaux appelés éclats qui peuvent être réparties sur un certain nombre de clusters de serveurs distribués. [23]
[Modifier] Caractéristiques
En avril 2009 [mise à jour], MySQL offre MySQL 5.1 en deux variantes: l'open source MySQL Community Server et Enterprise Server commerciales. MySQL 5.5 est offert sous les mêmes licences [24] Ils ont une base de code commune et comprennent les caractéristiques suivantes.:
* Un vaste sous-ensemble du SQL ANSI 99, ainsi que des extensions
* Multiplate-forme
* Les procédures stockées
* Déclencheurs
* Curseurs
* Vues actualisables
* Un soutien véritable Varchar
Des schémas d'informations *
* Le mode strict [explication supplémentaire nécessaire]
* X / Open XA de traitement des transactions distribuées (DTC) de soutien, deux phases dans le cadre de ce, en utilisant le moteur Oracle InnoDB
* Moteurs de stockage indépendants (MyISAM pour une vitesse de lecture, InnoDB pour les transactions et l'intégrité référentielle, MySQL Archive pour stocker des données historiques dans peu d'espace)
* Transactions avec les tables InnoDB, et les moteurs de stockage en cluster; les points de sauvegarde avec InnoDB
* Le support SSL
La mise en cache de requêtes *
* Sous-sélections (soit imbriquées Selects)
En charge la réplication * (c'est à dire maître-maître de la réplication et la réplication maître-esclave) avec un seul maître par esclave, beaucoup d'esclaves par maître, aucun soutien automatique à plusieurs maîtres par esclave.
* Indexation en texte intégral et la recherche en utilisant MyISAM moteur
* Bibliothèque de base de données embarquée
* Prise en charge partielle Unicode (UTF-8 et UCS-2 chaînes encodées sont limitées à la BMP)
La conformité ACID * Lorsque vous utilisez des moteurs de transaction de stockage capable (InnoDB et Cluster) [25]
* Tableaux Partititoned avec élagage des partitions dans l'optimiseur
* Shared-nothing regroupement grâce à MySQL Cluster
* Sauvegarde à chaud (via mysqlhotcopy) sous certaines conditions [26]
Les développeurs des versions mensuelles du serveur MySQL. Les sources peuvent être obtenus sur le site web de MySQL ou de dépôt Bazaar MySQL, tous deux sous la licence GPL.
[Modifier] Les signes distinctifs
MySQL implémente les fonctionnalités suivantes, dont certaines d'autres systèmes SGBDR ne peut pas:
* Moteurs de stockage multiples, permettant de choisir celui qui est le plus efficace pour chaque table dans la requête (en MySQL 5.0, moteurs de stockage doit être compilé en; dans MySQL 5.1, moteurs de stockage peuvent être chargés dynamiquement au moment de l'exécution):
o moteurs de stockage native (MyISAM, Falcon, Merge, mémoire (heap), Federated, Archive, CSV, Blackhole, Cluster, PAR EXEMPLE, Maria, et InnoDB, qui a été fait par défaut à partir de 5.5)
Partenaire-développés o moteurs de stockage (solidDB, NitroEDB, Infobright (anciennement Brighthouse), Kickfire, XtraDB, IBM DB2). [27] InnoDB utilisé pour être un partenaire développé moteur de stockage, mais avec les récentes acquisitions, Oracle possède désormais deux principaux MySQL et InnoDB.
o Communauté développé des moteurs de stockage (moteur memcache, httpd, PBXT, moteur des versions)
o moteurs de stockage personnalisés
* S'engager regroupement, la collecte des transactions multiples de connexions multiples ensemble pour augmenter le nombre de validations par seconde.
[Modifier] Limites
MySQL ne dispose pas actuellement conformes à la norme SQL pour certaines des fonctionnalités mises en œuvre, y compris des questions telles que le silence ignorer de SQL syntaxe standard [28]. Déclencheurs sont actuellement limités à un par action / calendrier, à savoir un maximum après insertion et un avant d'insérer le la même table. [29] Il n'ya pas de déclencheurs sur vues [29].
[Modifier] L'histoire des produits
Étapes dans le développement de MySQL incluent:
* Le développement original de MySQL par Michael Widenius et David Axmark à partir de 1994 [30]
* Première version interne le 23 mai 1995
* Version de Windows a été libéré le 8 Janvier 1998 pour Windows 95 et NT
* Version 3.23: beta de Juin 2000, la production communiqué Janvier 2001
* Version 4.0: bêta à partir d'août 2002, la production de presse Mars 2003 (syndicats)
* Version 4.01: beta à partir d'août 2003, Jyoti adopte MySQL pour le suivi de base de données
* Version 4.1: bêta à partir de Juin 2004, la production communiqué Octobre 2004 (R-arbres et B-arbres, les sous-requêtes, les requêtes préparées)
Version de production bêta à partir de Mars 2005, Octobre 2005 (curseurs, procédures stockées, triggers, vues, les transactions XA): * Version 5.0
Le développeur des États fédérés Storage Engine que «Le moteur de stockage Federated est un moteur de stockage proof-of-concept» [31], mais les principales distributions de MySQL version 5.0 elle comprenait et elle est activée par défaut. Documentation d'une partie des allées court apparaît dans «Tableaux fédérés MySQL: The Missing Manual" [32].
* Sun Microsystems a acquis MySQL AB, le 26 Février 2008. [5]
* Version 5.1: 27 version de production Novembre 2008 (Event Scheduler, partitionnement, Plugin API, ligne basé sur la réplication, tables de log du serveur)
La version 5.1 contient 20 connues de s'écraser et de bogues mauvais résultat, en plus de l'actuel 35 dans la version 5.0 (presque tous les fixes de libération 01/05/51) [33].
MySQL 5.1 et 6.0 montrent mauvaise performance lorsqu'il est utilisé pour l'entreposage de données -. Partie à cause de son incapacité à utiliser les multiples cœurs de processeurs pour le traitement d'une requête unique [34]
* Oracle a acquis Sun Microsystems, le 27 Janvier 2010. [35]
* MySQL Server 5.5 est actuellement généralement disponibles (comme de Décembre 2010 [update]). Améliorations et caractéristiques comprennent:
o Le moteur de stockage InnoDB par défaut est, qui supporte les transactions et les contraintes d'intégrité référentielle.
o Amélioration de InnoDB système E / S [36]
o Amélioration de support SMP [37]
o la réplication semi-synchrone.
o SIGNAL et RESIGNAL exposé en conformité avec le standard SQL.
o Prise en charge de caractères supplémentaires Unicode UTF16 ensembles, UTF32, et utf8mb4.
o options Nouveau définis par l'utilisateur de partitionnement.
[Modifier] Les versions futures
Le serveur MySQL 6.0.11-alpha a été annoncé le 22 mai 2009 que la dernière version de la ligne 6.0. Futur développement de serveur MySQL utilise un modèle Nouveaux. Caractéristiques développé pour 6,0 sont intégrées dans les versions futures.
MySQL 5.6, une version d'étape de développement, a été annoncée à la conférence des utilisateurs MySQL 2011. Les nouvelles fonctionnalités comprennent des améliorations de performance pour l'optimiseur de requêtes, un débit plus élevé transactionnel de InnoDB, nouvelle API NoSQL style memcached, l'amélioration de partitionnement permettant d'interroger et de gérer de très grandes tables, des améliorations de la réplication et la surveillance de meilleures performances en élargissant les données disponibles à travers le PERFORMANCE_SCHEMA. [38] En Juillet aperçus plus loin avec une API binlog, groupe commettre, et la recherche InnoDB texte intégral ont été libérés.
[Modifier] Soutien et d'octroi de licences
Cette section peut être écrit comme une publicité. S'il vous plaît aider à améliorer par la réécriture du contenu promotionnel à partir d'un point de vue neutre et en supprimant les liens inappropriés externes. (Septembre 2011)
MySQL offre un soutien par le biais de leur produit MySQL Enterprise, y compris un service de soutien. Le soutien communique avec les développeurs que nécessaire pour traiter les problèmes. En outre, elle héberge des forums et listes de diffusion, les employés et les autres utilisateurs sont souvent disponibles en plusieurs canaux IRC fournir une assistance.
Les acheteurs de MySQL Enterprise ont accès à des binaires et des logiciels certifiés pour leur système d'exploitation particulier, et l'accès aux mises à jour binaires mensuelles avec les dernières corrections de bogues. Plusieurs niveaux d'adhésion d'entreprise sont disponibles, avec différents temps de réponse et caractéristiques allant de comment et de soutien d'urgence à travers l'optimisation des performances du serveur et des conseils d'architecture système. La surveillance du réseau consultatif sur MySQL et outil de contrôle de service pour les serveurs de bases de données est uniquement disponible pour les abonnés à MySQL Enterprise.
Les utilisateurs potentiels peuvent installer le serveur MySQL en tant que logiciel libre sous licence GNU General Public License (GPL), et les abonnements MySQL Enterprise comprend une version GPL du serveur, avec une version propriétaire classique disponible sur demande sans frais supplémentaires pour les cas où l'usage prévu est incompatible avec la GPL [39].
Tant le logiciel de serveur MySQL lui-même et les bibliothèques clientes utilisent la double licence de distribution. Les utilisateurs peuvent choisir la GPL [40], dont MySQL a étendu avec une exception de licence FLOSS. Il permet au logiciel sous licence OSI d'autres conformes licences open source, qui ne sont pas compatibles avec la GPL, à se lier à la bibliothèque cliente MySQL [41].
Les clients qui ne souhaitent pas suivre les termes de la GPL peuvent acheter une licence exclusive [42].
Comme de nombreux programmes open source, MySQL a trademarked son nom, qui d'autres peuvent utiliser uniquement avec la permission du titulaire de la marque [43].
[Modifier] Historique soutien d'entreprise
En Octobre 2005, Oracle Corporation a acquis Innobase OY, la société finlandaise qui a développé le moteur de stockage tiers InnoDB de MySQL qui permet de fournir des fonctionnalités telles que les transactions et les clés étrangères. Après l'acquisition, un communiqué de presse d'Oracle a mentionné que les contrats qui font de logiciels disponibles pour MySQL AB, la société serait due pour le renouvellement (et probablement de renégociation) un certain temps en 2006. [44] Pendant des utilisateurs de MySQL à la Conférence en avril 2006, MySQL a publié un communiqué de presse qui a confirmé que MySQL et Innobase OY ont convenu d'un "multi-années" extension de leur accord de licence [45].
En Février 2006, Oracle Corporation a acquis Sleepycat Software, [46] les responsables de la DB de Berkeley, un moteur de base de données fournissant la base pour un autre moteur de stockage MySQL. Cela a eu peu d'effet, comme Berkeley DB n'a pas été largement utilisé et a été abandonné (à cause du manque d'utilisation) dans MySQL 5.1.12, une pré-version GA de MySQL 5.1 sorti en Octobre 2006. [47]
En Janvier 2008, Sun Microsystems a acheté MySQL pour 1 milliard de dollars [48].
En avril 2009, Oracle Corporation a conclu une entente visant l'acquisition de Sun Microsystems, [49] alors propriétaires de MySQL copyright et de marques. Conseil d'administration de Sun d'administration a unanimement approuvé la transaction, il a également été approuvé par les actionnaires de Sun, et par le gouvernement américain, le 20 août 2009. [50] Sur Décembre 14, 2009, Oracle s'est engagé à continuer d'améliorer MySQL [51] comme il l'avait fait pour les quatre années précédentes.
Un mouvement contre l'acquisition par Oracle de MySQL, pour «Sauver MySQL» [52] à partir d'Oracle a été lancé par l'un des fondateurs de MySQL, Monty Widenius. La pétition de 50.000 développeurs et utilisateurs + appelé la Commission européenne pour bloquer l'approbation de l'acquisition. Dans le même temps, plusieurs leaders d'opinion libre du logiciel (y compris Eben Moglen, Pamela Jones de Groklaw, Jan Wildeboer et Carlo Piana, qui a également agi comme co-conseil dans la procédure de règlement sur les concentrations) préconisée pour l'approbation inconditionnelle de la fusion. Citations [ nécessaire] Dans le cadre des négociations avec la Commission européenne, Oracle s'est engagé ce serveur MySQL continuera d'utiliser la stratégie de double licence utilisée depuis longtemps par MySQL AB avec les versions commerciales et GPL disponible au moins jusqu'en 2015. Les lois antitrust de l'UE avait été «la pressant de se départir de MySQL en tant que condition pour l'approbation de la fusion." Mais, comme l'a révélé par Wikileaks, le département américain de la Justice et antitrust, à la demande d'Oracle, sous la pression de l'UE à approuver la fusion sans conditions. [53] L'acquisition par Oracle a finalement été approuvée sans conditions par la Commission européenne le 21 Janvier 2010. [54]
Pendant ce temps, Monty Widenius a publié un fork GPL uniquement, MariaDB. MariaDB est basé sur la même base de code que le serveur MySQL et s'efforce de maintenir la compatibilité avec les versions d'Oracle fournis [55].
[Modifier] Forks
* Arroser - une fourchette ciblée sur le web-infrastructure et des marchés du cloud computing. Les développeurs du produit le décrire comme un «plus petit, plus mince et plus (j'espère) version plus rapide de MySQL». En tant que tel est prévu d'avoir de nombreuses caractéristiques communes MySQL supprimés, y compris les procédures stockées, cache de requête, les requêtes préparées, des vues et des triggers. Ceci est une réécriture complète du serveur qui n'a pas de maintenir la compatibilité avec MySQL.
* MariaDB - une branche communautaire développée de la base de données MySQL, l'impulsion étant le maintien de son statut de communauté libre sous licence GPL, par opposition à toute incertitude du statut de la licence de MySQL sous sa propriété actuelle par Oracle. Le but étant aussi de maintenir la haute fidélité avec MySQL, assurant un «drop-in" capacité de remplacement avec l'équivalence binaires bibliothèque et correspondant exigeants avec MySQL API et les commandes. Il inclut le moteur de stockage XtraDB comme un remplacement pour InnoDB.
* Percona Server - une fourchette qui comprend le moteur de stockage XtraDB. C'est une version améliorée de MySQL, qui est entièrement compatible, et s'écarte aussi peu que possible d'elle, tout en fournissant toujours bénéfique de nouvelles fonctionnalités, une meilleure performance, et l'instrumentation améliorée pour l'analyse des performances et l'utilisation.
* OurDelta - une fourchette compilées avec des taches diverses, y compris les correctifs de MariaDB, Percona, et Google.