MySQL

Un article de Wikipédia, l'enciclopèdia liura.

MySQL
Description de l'image MySQL.svg.

Informacions
Desvolopat per MySQL AB e OracleVoir et modifier les données sur Wikidata
Primièra version Voir et modifier les données sur Wikidata
Darrièra version 8.4.0 ()[1]Voir et modifier les données sur Wikidata
Dépôt MySQL sus GitHub
Estat del projècte En desvolopament permanent
Sistèma d'espleitacion Tip UnixVoir et modifier les données sur Wikidata
Formats legits MySQL Compta Definition Format (d) e MySQL View Definition Format (d)Voir et modifier les données sur Wikidata
Formats escriches MySQL Compta Definition Format (d) e MySQL View Definition Format (d)Voir et modifier les données sur Wikidata
Lengas Angleses
Tip Sistèma de gestion de basa de donadas relacionala (en)
Servidor logicial (d)Voir et modifier les données sur Wikidata
Politica de distribucion Gratuit
Licéncia Licéncia publica generala GNU version 2 e licéncia proprietàriaVoir et modifier les données sur Wikidata
Sit web www.mysql.comVoir et modifier les données sur Wikidata

MySQL (prononciat [maj.ɛs.ky.ɛl]) es un sistèma de gestion de basas de donadas relacionalas (SGBDR). Es distribuït jos una dobla licéncia GPL e proprietària. Fa partida dels logicials de gestion de basa de donadas las mai utilizats al mond[2], aitant pel public grand (aplicacions web principalament) que per de professionals, ne concurréncia amb Oracle, PostgreSQL e Microsoft SQL Server.

Son nom ven del prenom de la dròlla del cocréateur Michael Widenius, My (sv) (prononciar [my]). SQL fach referéncia al Structured Query Language, lo lengatge de requèsta utilizat.

MySQL AB es estat crompat lo per Sun Microsystems per un miliard de dòlars americans[3]. En 2009, Sun Microsystems es estat aquerit per Oracle Corporacion, metent entre las mans d'una meteissa societat los dos produches concurrents que son Oracle Database e MySQL. Aquela recrompa es estada autorizada per la Comission europèa lo [4],[5].

Dempuèi , son creator Michael Widenius a creat MariaDB (Maria es lo prenom de sa segonda dròlla) per contunhar son desvolopament coma projècte Open Font.

Caracteristics[modificar | modificar lo còdi]

MySQL es un servidor de basas de donadas relacionalas SQL desvolopat dins un lagui de resultats nauts en lectura, çò que significa qu'es mai orientat cap al servici de donadas ja ne plaça que cap al d'actualizadas frequentas e fòrça securizadas. Es multi-thread e multi-utilizator.

Es un logicial liure[6], open font[7], desvolopat jos dobla licéncia segon qu'es distribuït amb un produch liure o amb un produch proprietari. Dins aquel darrièr cas, la licéncia es paganta, senon es la licéncia publica generala GNU (GPL) que s'aplica. Un logicial qu'intègra de còdi MySQL o intègre MySQL pendent son installacion deurà donc èsser liure o aquerir una licéncia paganta. Pasmens, se la basa de donadas es separada del logicial proprietari que fa pas qu'utilizar d'API tierces (per exemple en C# o php), alara i a pas besonh d'aquerir una licéncia paganta MySQL. Aquel tip de licéncia dobla es utilizat per d'autres produches coma lo framework de desvolopament de logicials Qt (per las versions anterioras a la 4.5).

Sistèmas d'espleitacion suportats[modificar | modificar lo còdi]

MySQL fonciona sus de nombroses sistèmas d'espleitacion diferents, inclusent AIS, UBM i-5, BSDi, FreeBSD, HP-UX, Linux, Mac ÒS X, NetWare, NetBSD, OpenBSD, ÒS/2 Warp, SGI IRIX, Solaris, SCO OpenServer, SCO UnixWare, Tru64 Unix, Windows.

Las basas de donadas son accessiblas en utilizant los lengatges de programacion C, C++, VB, VB .NET, C#, Delphi/Kylix, Eiffel, Java, Perl, PHP, Python, WinDev, Ruby e Tcl ; una API especifica es disponibla per cadun d'entre eles. Una interfàcia ODBC apelada MyODBC es tanben disponibla. En Java, MySQL pòt èsser utilizat de faiçon transparenta amb l'estandard JDO.

Lengatges informatics suportats[modificar | modificar lo còdi]

MySQL supòrta dos lengatges informatics, lo lengatge de requèsta SQL e lo SQL/PSM (Persistisson Stored Moduls), una extension procedurala estandardizada al SQL inclusa dins la nòrma SQL:2003[8]. SQL/PSM, introduch dins la version 5 de MySQL, permet de combinar de requèstas SQL e de las instruccions proceduralas (boclas, condicions…), amb la tòca de crear de tractaments complèxes destinats a èsser estocats sul servidor de basa de donadas (objèctes servidor), per exemple de las proceduras estocadas o dels iniciadors.

Utilizacion[modificar | modificar lo còdi]

MySQL fa partida del qüatuor LAMP : Linux, apach, MySQL, PHP. Apartenís egalament a sas variantas WAMP (Windows) e MAMP (macOS).

Lo coble PHP/MySQL es plan utilizat pels sits web e prepausat per la majoritat de las hébergeurs Web. Mai de la mitat dels sits Web foncionan jos apach, qu'es lo mai sovent utilizat conjonchament amb PHP e MySQL.

Istoric[modificar | modificar lo còdi]

De nombrosas entrepresas, dont Google, Yahoo!, YouTube, Adobe, Airbus, Alstom, Crèdit agricòla, AFP, Reuters, BBC News, Ernst & Young, Alcatel-Lucent[9] utilizan actualament MySQL.

Version de SQL[modificar | modificar lo còdi]

MySQL supòrta la nòrma SQL2[10] (utilizacion de las RIGHT JOIN e LEFT JOIN[11]), la conformitat a aquela nòrma garantissent qu'onorarà las requèstas normalizadas correspondentas. Pasmens, las foncionalitats de las nòrmas SQL las mai recentas son pas totas implementadas[12] e d'unas respèctan pas la sintaxi recomandada[13] (la concatenacion per exemple), empachant l'interopérabilité de las requèstas entre diferents SGBD.

Foncionalitats[modificar | modificar lo còdi]

Dos motors principals son presents dins MySQL : MyISAM e InnoDB.

MyISAM, al contra d'InnoDB , supòrta pas ni transaccions ni integritat automatica de las taulas, es pas destinat a las aplicacions dont la coeréncia de las donadas es critica ; pasmens, sos resultats o fan adoptar per d'aplicacions avent besonh d'una basa de donadas simpla e pauc onerosa a començar.

Pels utilizators, phpMyAdmin es un esplech web sovent disponible per crear, emplenar e utilizar de basas MySQL.

Interopérabilité[modificar | modificar lo còdi]

Las taulas de las basas de donadas SQL e las dels tabularis comunican plan dins lo dos sens (pertocant las solas donadas numericas e cadenas de caractèrs) pel mejan del format CSV. De formats de salvagarda e restauracion existisson, jos forma d'òrdres SQL, aital coma en format XML.

Usatge en produccion[modificar | modificar lo còdi]

L'interès d'utilizar d'espleches dobèrts a egalament possat qualques establiments bancaris tals coma lo Crèdit mutual, lo Crèdit agricòla, lo Crèdit lionés, la Banca de desvolopament de Canadà a inscriure MySQL al catalòg de lors produches informatics intèrns.

Denominacion[modificar | modificar lo còdi]

MySQL es l'òbra d'una societat suedesa, MySQL AB, fondada per David Axmark, Allan Larsson (en) e Michael « Monty » Widenius.

Lo nom MySQL ven de la combinason de My, filha del cofondator Michael « Monty » Widenius, amb l'acronim SQL (segon la documentacion de la darrièra version en anglés[14]). D'autra part, lo dossièr basa e una partida granda de las bibliotècas utilizadas pels desvolopaires utilizan lo prefix My.

Lo nom del logo de MySQL (lo dalfin) Sakila, es estat causit pels creators de MySQL sus la basa d'un concors. Es estat prepausat per Ambrose Twebaze, desvolopaire d'Eswatini . Segon Ambrose, lo nom Sakila posa sas originas del siswati, la lenga locala d'Eswatini[réf. necessari]. Sakila es tanben lo nom d'una basa de donadas facha per la practica[15].

Istoric[modificar | modificar lo còdi]

David Axmark, fondator de MySQL.

La primièra version de MySQL es apareguda lo . Es primièr estat creat per un usatge personal a partir de mSQL en se prement lo lengatge de bas nivèl ISAM qu'eles[Que ?] trobavan tròp lent e tròp rigid. An creat una interfàcia novèla SQL en gardant la meteissa API que mSQL.

MySQL es passat en licéncia GPL a partir de la version 3.23.19 ()

  • Version 4.0 : primièra version en , estable dempuèi
  • Version 4.1 : primièra version en , estable dempuèi
  • Version 5.0 : primièra version en , estable dempuèi
  • Version 5.1 : primièra version en , Release Candidata distribuïda dempuèi
  • Version 5.2 : distribuïda endavant-primièra (apondi del motor novèl d'estocatge Falcon) en , aquela linha es puèi estada tornada nomenar 6.0
  • Version 5.5 : Version establa dempuèi
  • Version 5.6 : Version establa dempuèi [16]
  • Version 5.7 : Version establa dempuèi [17]
  • Version 6.0 : primièra version alfa en , abandonada dempuèi la recrompa de MySQL per Oracle en
  • Version 8.0 : Version establa dempuèi [18]

En 2003, MySQL AB e SAP AG concluson un acòrdi. Lo resultat s'apelarà MaxDB. Es eissit de l'integracion del sistèma de SAP (SAP DB) dins MySQL.

Lo , Oracle Corporacion anóncia recrompar Sun Microsystems per 7,4 miliards de dòlars[19], que veniá el meteis de recrompar MySQL AB, creant la crenhença de veire MySQL desaparéisser – o almens èsser pas mai desvolopat – al profièch d'Oracle , lo SGBD d'Oracle Corporacion. MySQL es pasmens luènh d'aver totas las foncionalitats d'Oracle, e poiriá donc èsser vist al contrari per la societat coma un produch gratuit d'apèl banalizant l'usatge de SQL e preparant donc sas futuras vendas.

Motors de basa de donadas inclús[modificar | modificar lo còdi]

L'una de las especificitats de MySQL es de poder gerir mantun motor dins una sola basa. Cada taula pòt utilizar un motor diferent dins una basa. Aiçò per tal d'optimizar l'utilizacion de cada taula.

Aquí los diferents motors istorics de MySQL :

  • MyISAM : motor per manca de MySQL fins a la version 5.5. Es lo mai simple a utilizar e a començar. Utiliza mantun fichièr que creisson a mesura que la basa grossís. Supòrta pas las transaccions, ni las claus estrangièras ;
  • InnoDB : motor creat e mantengut per InnoBase (recrompat per Oracle lo ). Gerís las transaccions e las claus estrangièras (e donc l'integritat de sas taulas). En contrapartida, las basas que l'utilizan ocupan fòrça mai d'espaci sul disc. InnoDB es lo motor per defaut dempuèi la version 5.6.
  • BerkeleyDB (BDB) : motor fornit per Sleepycat Logicial que gerís las transaccions ;
  • Merge : motor fach per fusionar mantuna taula que devon èsser identicas ;
  • Aarchive : motor adaptat a l'archivatge de donadas. Las linhas son compressées a mesura de lor insercion. Las requèstas de recèrcas son alara sensiblament mai lentas ;
  • Memory (Heap) : motor ont las taulas son estocadas unicament en memòria. L'estructura de la basa es estocada sul disc dur mas las donadas son estocadas dins la RAM, se la maquina servidor torna desmarrar, las donadas seràn perdudas. Pasmens, estant que i a pas mai d'accès disc, una requèsta de modificacion (UPDATE, INSERT…) s'executarà fòrça mai lèu e sens cargar los braces d'accèsses ; conven per las memorizacions temporàrias, coma un panièr en comèrci electronic ;
  • CSV : motor utilizant de fichièrs tèxtes (al format CSV) coma estocatge ;
  • Blackhole : motor recepcionant las donadas, los transferissent mas los estocant pas. Pòt èsser utilizat coma repetidor o coma filtre de donadas ;
  • ISAM : motor d'origina de MySQL, ara obsolet e remplaçat per MyISAM. Es demorat per de rasons de compatibilitat ;
  • NDB (unicament dins la version MaxDB) : motor de basa de donadas ret gerissent los rasims de servidors ;
  • Federated : motor permetent d'accedir a de taulas d'una basa de donadas distantas puslèu que dins los fichièrs locals ;
  • Exemple : motor fictiu e inutilizable, mes a disposicion pels desvolopaires ;
  • Falcon (en) : aquel motor novèl deviá far son aparicion amb MySQL 6. A l'epòca MySQL AB aviá volgut crear un novèl motor transaccional per dependre pas mai d'Oracle que veniá de recrompar InnoBase, creators del motor d'estocatge InnoDB. Aquel motor d'estocatge es estat abandonat dempuèi la recrompa de MySQL per Oracle.
  • Ària (ancianament Maria) : evolucion ACID de MyISAM.

De motors d'estocatges open font :

  • Infobright : motor VLDB, orientat cap a las aplicacions décisionnelles ;
  • Esfinx : motor orientat recèrca plen tèxt ;
  • PBXT : motor transaccional pròche dels resultats d'InnoDB ;
  • Memcached : motor orientat taula de hash en memòria ;
  • M4q : motor orientat gestion de fila d'espèra ;
  • ColumnStore (MariaDB) : motor orientat colomna.

De motors d'estocatges comercials :

  • DB2 : motor transaccional copyright UBM ;
  • SolidDB : motor transaccional copyright UBM ;
  • NitroEDB : motor VLDB copyright BrightHouse ;
  • Tokutek : motor VLDB.

La facilitat d'utilizacion de mantun motor d'estocatge dins una sola basa amb MySQL permet una enòrma flexibilitat dins l'optimizacion de la basa : s'utilizarà MyISAM per estocar las donadas pauc sensiblas e necessitant un accès rapid a las donadas (per exemple una lista d'utilizators), InnoDB per las foncions avançadas e las donadas mai sensiblas (per exemple per una lista de las transaccions bancàrias), MEMORY per de donadas podent èsser perdudas pendent la represa de la maquina e sovent modificadas (per exemple una lista d'utilizators en linha), ARCHIU per un istoric (o log) necessitant pas que pauc de lectura…

Rasims de servidors[modificar | modificar lo còdi]

Dos metòdes existisson per despartir la carga sus un ensemble de maquinas foncionant jos MySQL Server. Aqueles metòdes permeton d'assegurar una redondància (s'una maquina tomba en pana, d'autras pòdon prene la relèva), de melhorar la rapiditat de las recèrcas (SELECT) o encara d'establir una maquina destinada a la salvagarda de las donadas.

Replicacion[modificar | modificar lo còdi]

Replicacion jos MySQL.

MySQL es capable, dempuèi la version 3.23.15 d'utilizar un sistèma de replicacion a sens unic relativament simple a metre en plaça : un servidor mèstre que conten la basa de donadas sorsa e va recebre l'ensemble de las modificacions, e un servidor esclau que conten una basa a estructura identica e que se va connectar al servidor mèstre per anar cercar las modificacions novèlas e actualizar sas basas. Un mèstre pòt aver mantun esclau, e un esclau pòt venir a son torn mèstre per un autre servidor esclau, realizant atal una cadena de replicacion[20].

Totas las modificacions (UPDATE, DELETE, INSERT…) devon èsser enviadas al servidor mèstre e seràn automaticament repercutidas sus sos esclaus, mas las requèstas de recèrca (SELECT), sovent mai nombrosas e mai lepetas en ressorsas poiràn èsser efectuadas sus un o mantun esclau. Coma las requèstas de modificacions devon èsser tornadas dirigir sul servidor mèstre, la concepcion de l'aplicacion se deu adaptar a l'arquitectura : lo programaire va obrir doas connexions dins son programa, una sul servidor mèstre, sul qual executarà totas sas modificacions e una sul servidor esclau sul qual executarà totas sas recèrcas.

Aquel sistèma permet pas pasmens qu'una redondància limitada :

  • Se lo servidor mèstre tombe en pana, son esclava pòt prene lo relai, mas fa besonh al programaire d'actualizar son programa per cargar lo servidor que va recebre las modificacions, o de programar una lista de redondància per cambiar de mèstre automaticament ;
  • Se lo servidor esclau cèsse de foncionar, l'ensemble de las requèstas deuràn èsser enviadas al servidor mèstre ;
  • Se l'arquitectura compòrte mai de dos noses, e dins lo cas ont un servidor intermediari a la cadena (qu'es esclava e a l'encòp mèstre) tomba en pana, lo servidor esclau deurà èsser reconfiguré per se replicar sul servidor mèstre del servidor tombat en pana.

Dins la màger part dels cases, calrà una accion de l'administrator per restablir l'òrdre, e l'aplicacion cessarà de foncionar pendent aquel laps de temps. L'interès d'aquela solucion apareis alara dins la gestion de las salvagardas, perque l'aplicacion utilizant pas que lo servidor mèstre, serà pas arrestada se lo servidor esclau de salvagardas tombe en pana, mas una salvagarda de la basa serà disponibla dins lo cas ont lo servidor mèstre tomba en pana.

Se se desira ajustar un nos, o cal plaçar al cap de la cadena coma esclava e modificar l'aplicacion per gerir aquel nos novèl.

Del ponch de vista de MySQL, cada nos es gerit independentament, es donc al programaire de deure gerir la reparticion de la carga.

Extension memcached permetent accès NoSQL a las donadas del motor InnoDB[modificar | modificar lo còdi]

L'interfàcia « memcached » es una extension a MySQL dempuèi la version 5.6 se presentant jos la forma d'un servici resident executat sul servidor e permetent de metre en memòria amaga de donadas estocadas pel motor InnoDB. L'interès es un ganh de proesa (las donadas son en amagatal memòria) e la possibilitat d'accedir a e de modificar una donada per una interfàcia de l'estil NoSQL (accès a la donada per una sintaxi de l'estil @@get key), permetent d'evitar lo temps d'interpretacion de la requèsta pel parseur de requèsta[21].

MySQL Foguièr[modificar | modificar lo còdi]

Estructura d'un rasim de servidors MySQL.

MySQL es capable, dempuèi la version 4.1 e gràcias al motor d'estocatge NDB, de gerir un rasim de servidors completa. Son estructura pausa sus la duplicacion de las donadas, valent a dire que cada nos farà partida d'un grop de noses que possediràn totes la totalitat de la basa[22].

Un protocòl mes en plaça dins cada nos s'ocupa d'adreçar cada transaccion als diferents noses concernits dins lo rasim, cal un minimum de doas maquinas per establir una solucion de clustering MySQL e una maquina (que pòt ela meteissa integrar un servidor MySQL) que va jogar lo ròtle de repartidor de carga en tornant dirigir las requèstas suls noses disponibles e los mens ocupats.

Las requèstas de recèrcas (SELECT) seràn mai rapidas, mas pendent una modificacion de las donadas (una requèsta UPDATE, DELETE o INSERT per exemple), aquesta serà efectuada sus l'ensemble dels noses, çò que blocarà l'ensemble del rasim pendent aquela operacion.

Respècte a un sistèma de replicacion, la redondància es melhorada : s'un nos tomba en pana, sa carga es automaticament represa pels autres noses.

L'apondi d'un nos novèl se pòt far sens aver besonh de repartitionner la basa, sufís d'o far reconéisser pel rasim e la represa d'un nos se pòt far sens aver a tornar desmarrar lo rasim.

Del ponch de vista de MySQL, cada nos fa partida d'un ensemble que poiriá èsser reconegut coma una sola maquina. Pel programaire, deu programar son aplicacion per comunicar amb lo repartidor de carga.

Aquela solucion s'adapta perfièchament quand la disponibilitat e la securitat de las donadas es un problèma critic e que se recerca un partitionnement tecnic per l'escritura. Coblat a de foncionalitats temps real e a una API de programacion asincròna NDB Foguièr s'adreça principalament a las exigéncias del mercat de las telecomunicacions.

Nòtas e referéncias[modificar | modificar lo còdi]

  1. « Cambis in MySQL 8.4.0 (2024-04-30, LTS Release) », (consultat lo )
  2. (en) « DB-Engines Ranking », DB-Engines.
  3. (en) « Sun acquires MySQL », blogs.mysql.com
  4. L'UE autoriza la recrompa de Sun per Oracle, Reuters
  5. (en) European Comission Unconditionally Approves Oracle’s Aquisicion of Sun, Oracle
  6. « MySQL Products », sus mysql.fr (consultat lo ).
  7. « ~mysql/mysql-server/5.5 », sus launchpad.net (consultat lo ).
  8. (en) http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=34135.
  9. (en) MySQL :: MySQL Customers by Industry
  10. (en) http://www.scriptol.com/programming/mysql.php
  11. « dev.mysql.com/doc/refman/5.0/f… »(Archive.orgWikiwixArchive.isGoogleQue far ?).
  12. « lo SQL d'A a Z - Foncions SQL », sus Developpez.com (consultat lo ).
  13. « siteduzero.com/tutoriel-3-3160… »(Archive.orgWikiwixArchive.isGoogleQue far ?).
  14. « MySQL 5.5 Manual: History of MySQL ».
  15. (en) « MySQL :: Sakila Sample Database », sus dev.mysql.com (consultat l'11 ).
  16. http://www.oracle.com/us/corporate/press/1904335
  17. « How To Prepare For Your MySQL 5.7 Upgrade », sus digitalocean.com, .
  18. (en) « What’s New in MySQL 8.0? (Generally Available) », sus MySQL Server Blòg, (consultat lo ).
  19. article « Oracle recrompa Sun per 7,4 miliards de dòlars »(Archive.orgWikiwixArchive.isGoogleQue far ?), sus O1net.com.
  20. « dev.mysql.com/doc/refman/5.0/f… »(Archive.orgWikiwixArchive.isGoogleQue far ?).
  21. « NoSQL to InnoDB with Memcached ».
  22. « dev.mysql.com/doc/refman/5.0/f… »(Archive.orgWikiwixArchive.isGoogleQue far ?).

Veire tanben[modificar | modificar lo còdi]

Suls autres projèctes Wikimedia :

Bibliografia[modificar | modificar lo còdi]

Articles connèxes[modificar | modificar lo còdi]

Espleches de gestion, d'administracion e de concepcion per MySQL