MySQL
MySQL programari | |
---|---|
Client de línia d'ordres MySQL (a Debian ). | |
Tipus | Sistema de gestió de bases de dades relacionals |
Desenvolupador | Oracle Corporation |
Data de la primera versió | 1994 |
Última versió | 8.0.26 (20 de juliol de 2021) |
Sistema operatiu | Multiplataforma |
Llenguatge | C. C ++ |
Llicència | GNU GPL i llicència comercial ( llicència gratuïta ) |
Lloc web | www.mysql.com/ |
MySQL o Oracle MySQL (/ maɪ ˌɛskjuːˈɛl / "My SQL") [1] és un sistema de gestió de bases de dades relacionals (RDBMS) compost per un client de línia d'ordres i un servidor , tots dos disponibles tant per a sistemes Unix i similars a Unix com per a Windows ; les principals plataformes de referència són Linux i Oracle Solaris .
El programari lliure llançat amb doble llicència, inclosa la GNU General Public License , ha estat desenvolupat per complir el màxim possible els estàndards ANSI SQL i ODBC SQL. [2] [3] [4] , els sistemes illenguatges de programació que el suporten són molt nombrosos: ODBC , Java , Mono , .NET , PHP , Python i molts altres.
Les plataformes LAMP i WAMP incorporen MySQL per a la implementació de servidors per gestionar llocs web dinàmics, a més, molts dels sistemes de gestió de contingut amb èxit com WordPress , Joomla , Drupal i TikiWiki neixen amb el suport per defecte de MySQL. [5] [6] [7] El programari MediaWiki , que gestiona els llocs del projecte Wikimedia , es basa en una base de dades MySQL.
Història
El codi font de MySQL era propietat original de l’empresa MySQL AB, però es va distribuir amb la llicència GNU GPL i també amb una llicència comercial. Fins a la versió 4.0, una gran part del codi de client tenia llicència GNU LGPL i, per tant, també es podia utilitzar per a aplicacions propietàries. A partir de la versió 4.1, el codi de client també es distribueix sota la GNU GPL. No obstant això, hi ha una extensa clàusula que permet l’ús de MySQL amb una àmplia gamma de llicències lliures.
A juliol de 2007, l’empresa sueca MySQL AB comptava amb 385 empleats a nombrosos països. Els seus ingressos principals provenien del suport als usuaris de MySQL mitjançant el paquet Enterprise , la venda de llicències comercials i l’ús de tercers de la marca MySQL . El 16 de gener de 2008 Sun Microsystems va comprar la companyia per mil milions de dòlars, [8] calculant el mercat de la base de dades en 15 mil milions de dòlars .
El 20 d'abril de 2009, Sun Microsystems va rebre una adquisició per part d' Oracle per 7.400 milions de dòlars. L'acord, aprovat per l'antimonopoli nord-americà, es va passar a l'examen de les entitats corresponents de la Unió Europea, preocupat pel conflicte d'interessos constituït per les bases de dades comercials d'Oracle pel que fa a MySQL. Michael Widenius , el pare de MySQL, ha llançat una petició en línia per oposar-se a la fusió. Malgrat això, la Unió Europea va donar una opinió favorable i l'adquisició es va completar el 27 de gener de 2010 [9] .
La branca 5.5 és la primera que inclou extensions que no són de codi obert, disponibles només a la versió Enterprise de pagament. [8] [10]
Des del 2012 diverses distribucions de Linux i alguns usuaris importants com Wikipedia [11] han començat a substituir MySQL per la forquilla MariaDB [12] [13] [14] .
Desenvolupament
Quant a fa uns anys [ substituïu la referència relativa per una absoluta ], el desenvolupament del programa va ser realitzat principalment pels seus desenvolupadors inicials: David Axmark , Allan Larsson i Michael Widenius . Aquest últim va ser el principal autor del codi, així com el principal accionista del empresa [ Quina? Hi va haver 2 adquisicions ] , i encara coordina el projecte, entre altres coses, avaluant les aportacions rebudes dels voluntaris. S’accepten contribucions amb la condició que el seu autor comparteixi els drets d’autor amb empresa [ Quina? Hi ha hagut 2 adquisicions ] .
Característiques
L’ Internet Assigned Numbers Authority ha assignat formalment el port 3306
al servidor MySQL. [15] [16]
Versions
3,23
La primera versió alfa de la sucursal 3.23.x es va publicar el juliol de 1999. La primera la versió de producció [ no està clara ] és del gener del 2001. A les versions 3.23.x, s’han afegit els tipus de taula MyISAM (que substitueix l’antic Isam), HEAP (ara MEMORY), InnoDB i BDB. També s’ha afegit la cerca de text complet i la rèplica de bases de dades.
4.0
L'octubre del 2001 es va llançar la primera versió alfa de la sucursal 4.0.x, mentre que el març del 2003 va entrar en producció. Les incorporacions més significatives són:
- una memòria cau per a consultes
- Consultes tipus UNION
- ELIMINA la taula múltiple
- taules de combinació millorades per admetre INSERTs i camps autoincrementables
- limitació dels recursos que pot utilitzar cada usuari
- variables d'entorn que es poden restablir amb l'ordre SET
- una biblioteca per incorporar funcions MySQL a un altre programa
4.1
La primera versió de la branca 4.1.x es remunta a l'abril del 2003 , mentre que a l'octubre del 2004 va entrar en producció. Les incorporacions més significatives són:
- les subquestes. Es tracta de consultes SQL imbricades. Per tant, teniu l’oportunitat d’escriure:
SELECT * FROM table1 WHERE column1 = ( SELECT column1 FROM table2 LIMIT 1 )
- Dades geogràfiques emmagatzemades segons el model OpenGIS ;
- Les declaracions preparades ;
- Connexions SSL / TLS ;
- Conjunt de caràcters configurable a nivell de base de dades, taula i columna; afegit suport per a Unicode (UTF8 i UCS2);
- Comentaris a nivell de columna.
5.0
El 22 de desembre de 2003 es va llançar la primera versió de la sèrie 5.0, que va entrar en producció el 19 d'octubre de 2005 . Les incorporacions més significatives són:
- Les vistes , taules virtuals obtingudes a partir d’una consulta SQL, que es poden actualitzar quan sigui possible;
- Procediments emmagatzemats , un llenguatge de programació real per interactuar amb les dades de la base de dades. A més dels paràmetres de cerca i selecció habituals, és possible inserir construccions [IF ... THEN ... ELSE], només per posar un exemple;
- Activadors , sentències SQL que s'inicien automàticament abans o després de l'execució de determinades consultes en determinades taules
- INFORMATION_SCHEMA , una base de dades virtual que descriu l'estructura de la resta de bases de dades; a més, s'han millorat les ordres SHOW, que també proporcionen informació sobre l'estructura de les bases de dades;
- El tipus de dades BIT ;
- Gestionar la zona horària adequada ( zona horària);
- Els tipus de taula Arxiu i Federació;
- Una API ben estructurada per desenvolupar nous tipus de taules.
5.1
La primera versió alfa pública es va publicar el 29 de novembre de 2005 . Les principals novetats són:
- Particionament de taules;
- Una API per escriure nous analitzadors per a cerques FULLTEXT ;
- Esdeveniments;
- Replicació basada en dades (en lloc de consultes);
- Els registres es poden escriure en una base de dades, així com en fitxers de text;
- Suport de Xpath ;
- Camps AUTOINCREMENT i diverses optimitzacions per a taules ARXIU;
- ClusterDB ara pot escriure dades al disc, així com emmagatzemar-les a la memòria RAM; també admet MontaVista ;
- ALTER TABLE, CREATE INDEX i DROP INDEX tenen un rendiment molt millor.
5.2
La versió 5.2 està en fase alfa i els principals canvis són el nou motor d’emmagatzematge Falcon i la còpia de seguretat en línia. Al lloc MySQL, totes les referències a la versió 5.2 han desaparegut i els canvis que s’haurien d’haver introduït han estat planificats per a la versió 6.0.
5.4
Aquesta és la primera branca desenvolupada sota el paraigua de Sun, ara Oracle. Per tant, no és casualitat que aquesta versió tingués com a únic propòsit l’optimització del servidor en sistemes Solaris i en maquinari SPARC, així com l’optimització d’InnoDB, en particular la configuració per defecte que anteriorment tenia defectes importants.
5.5
Aquesta és la primera branca que es va mantenir estable sota el paraigua d'Oracle. La versió 5.5 presenta diverses funcions noves:
- La rèplica semisincrònica proporciona una major garantia de les dades, ja que el commit a la base de dades Master espera que almenys un esclau hagi rebut els canvis;
- S'introdueix l' esquema de rendiment que conté nombroses vistes útils per ajustar la base de dades;
- El motor InnoDB es converteix en el predeterminat, augmenta el seu rendiment i es pot escalar en processadors multicore moderns.
5.6
És l’última versió llançada en producció. Hi ha moltes funcions noves a la versió 5.6, algunes de les quals són molt esperades:
- Gestió de microsegons i mil·lisegons en tipus de dades temporals i marques de temps;
- La possibilitat de comprovar les dades de la memòria cau de l’amfitrió i els errors relacionats;
- Noves vistes, útils per supervisar i ajustar la base de dades, a l’esquema de rendiment i a l’esquema d’informació;
- La possibilitat d'excloure determinats directoris de la cerca com a nom de base de dades;
- L'ús de cerques textuals (FULLTEXT SEARCH) a InnoDB Engine;
- Una interfície memcache a les taules InnoDB;
- Moltes extensions útils que milloren la seguretat de la base de dades.
5.7
Aquesta branca està en desenvolupament. Les novetats es troben principalment en el motor d’emmagatzematge InnoDB. La branca 5.7 també introdueix la TAULA ALTER en línia i la pila d'errors.
6,0
Aquesta versió s'ha cancel·lat i alguns dels codis desenvolupats no s'inclouran en versions futures. Algunes de les funcions de MariaDB s’han importat des d’aquesta branca.
Compatibilitat
MySQL, escrit en llenguatge C i C ++ , està disponible en molts sistemes operatius diferents , incloent AIX , AmigaOS, BSDi , Digital Unix, FreeBSD , HP-UX , GNU / Linux , macOS , NetBSD , Novell NetWare , OpenBSD , OS / 2 Warp, SGI IRIX , Solaris , SunOS , SCO OpenServer, SCO UnixWare, SGI Irix, Tru64 , Windows 95 , Windows 98 , Windows NT , Windows 2000 , Windows XP , Windows 2003 , Windows Server 2008 , Windows Server 2008 R2 , Windows Vista , Windows 7 , Windows 8 i Windows 10 . [17]
Les plataformes de referència són Linux i Solaris. No obstant això, la documentació de MySQL ofereix ajuda per a aquells que necessiten provar de compilar el programari en qualsevol sistema operatiu bastant popular.
MySQL també utilitza les eines automake , autoconf i libtools per augmentar la compatibilitat.
Les taules tipus BDB només funcionaran en els sistemes operatius següents: Intel GNU / Linux 2.x, Solaris (SPARC i x86), FreeBSD 4.x / 5.x (x86, sparc64), AIX 4.3.x, SCO OpenServer, SCO UnixWare 7.1.x
Els controladors estan disponibles per a C , C ++ , C # , Eiffel , Java , Perl , PHP , Python , Ruby , Tcl i per a Mono i. Net.
Finalment, el llenguatge SQL de MySQL inclou nombroses extensions pròpies d'altres DBMS, com PostgreSQL, Oracle i Sybase. D'aquesta manera, en alguns casos, les consultes no estàndard escrites per a altres SGBD funcionaran sense problemes.
Administració

Hi ha diversos tipus de gestor de MySQL , que són eines per administrar MySQL. Un dels programes més populars per administrar bases de dades MySQL és phpMyAdmin, que requereix un servidor web com ara el servidor HTTP Apache i el suport del llenguatge PHP . Es pot utilitzar fàcilment a través de qualsevol navegador .
Algunes ofertes de tercers són HeidiSQL , SQLYog o Toad for MySQL . Com a alternativa, MySQL AB ofereix programes com MySQL Administrator (administració de bases de dades, usuaris, operacions programades, càrrega del servidor, ...) i MySQL Query Browser (execució de diversos tipus de consultes), MySQL Migration Toolkit per importar d’altres SGBD.
Per al disseny i modelització de bases de dades MySQL, hi ha MySQL Workbench : integra el disseny, modelatge, creació i actualització de bases de dades en un únic entorn de treball.
En el passat, també es va desenvolupar MySQLcc (centre de control MySQL), substituït per MySQL Query Browser .
Com a alternativa als gestors gràfics, és possible utilitzar la línia d’ordres directament, preferida per usuaris / administradors experimentats.
Tipus de taula MYSQL (motor d’emmagatzematge)
A MySQL, una taula pot ser de diferents tipus (o motors d’emmagatzematge ). Cada tipus de taula té diferents propietats i característiques (transaccionals o no, millor rendiment, diferents estratègies de bloqueig, funcions particulars, etc.). També hi ha una API que podeu utilitzar per crear relativament fàcilment un nou tipus de taula, que podeu instal·lar sense haver de recompilar ni reiniciar el servidor.
Motors d'emmagatzematge oficials
Els tipus de taula per defecte són:
- MyISAM
- InnoDB (transaccional, desenvolupat per InnoBase Oy, una empresa que ara compra Oracle)
- Memòria (una vegada anomenada Heap)
- Combina
- NDB o ClusterDB (introduït a la versió 5.0)
- CSV (introduït a 5.1)
- Federat (introduït a la versió 5.0)
- Arxiu (introduït a la versió 5.0)
- BLACKHOLE (introduït a la versió 5.0)
- Falcon (mai s'ha acabat i el projecte s'abandona)
- Aria (es va desenvolupar originalment per a MySQL, que no l’ha adoptat mai; està present a MariaDB )
Motors d'emmagatzematge produïts per tercers
També hi ha motors d’emmagatzematge produïts per tercers. A continuació en detallem alguns:
- XtraDB - Fork of InnoDB, desenvolupat per Percona
- OQGRAPH - Simular estructures de gràfics
- SolidDB [18] : motor transaccional
- RitmarkFS [19] : permet l'accés de lectura i escriptura al sistema de fitxers mitjançant ordres SQL, també admet la replicació del sistema de fitxers
- Distributed Data Engine [20] : motor per a dades distribuïdes, per gestionar millor la càrrega de treball
- SphinxSE : interfície MySQL amb Sphinx
- CassandraSE : interfície MariaDB amb Apache Cassandra
- mdbtools [21] : us permet llegir i escriure un fitxer. mdb (accés)
- BrightHouse: apareix a l'usuari com un MyISAM normal, però interna estructura les dades per columnes en lloc de per files. Normalment s’utilitza en lectura per a Data Warehouse: redueix els temps d’accés i l’espai per a les dades de 10 a 100 vegades.
Alguns d'aquests motors d'emmagatzematge es distribueixen amb MariaDB o Percona Server.
Motors d’emmagatzematge obsolets
- ISAM (ja no és compatible; era el motor per defecte abans de ser substituït per MyISAM)
- BDB (transaccional, desenvolupat per SleepyCat, una empresa adquirida ara per Oracle; des de la versió 5.1.12 ja no és present a MySQL)
- Bessons (ja fa molts anys que ja no és compatible i ja no és compatible amb l'API MySQL). Una vegada va ser molt important com a motor transaccional; va ser produït per NuSphere, que mai va complir la llicència GPLv2 de MySQL i va intentar judicialment negar-ne la validesa legal, per després acordar amb MySQL pagar els danys econòmics i retirar el producte del mercat. El desenvolupament i el suport a Gemini han cessat.
- PBXT : motor transaccional dissenyat per a aplicacions web d’alta concurrència, distribuït amb MariaDB.
- Amira és una bifurcació de Bessons i ha estat mantenida per la comunitat des de fa temps.
Forquilla
Algunes bifurcacions van néixer en la crítica de la manca d'obertura de MySQL a les contribucions de voluntaris externs i la lentitud de la publicació de les correccions d'errors informades.
Pluja
Nascut per Brian Aker entre abril i maig de 2008, aquesta forquilla es proposa com un SGBD lleuger. De fet, a partir de MySQL 6 alguns desenvolupadors han eliminat la majoria de les seves funcions, mantenint el cor, netejant-lo i modificant la seva arquitectura. La idea és crear un micro nucli amb nombroses interfícies que pugui utilitzar per carregar la funcionalitat externa.
Durant el procés de neteja, el codi va créixer a menys de 200 KB de mida. [ sense font ] Entre les funcions eliminades hi ha: procediments emmagatzemats, visualitzacions, activadors, declaracions preparades, memòria cau, MyISAM. Segons els desenvolupadors, totes aquestes funcions es podrien reimplementar en forma de connectors, sense carregar innecessàriament els usuaris que no les utilitzen: tot i que aquestes funcions són insubstituïbles en situacions particulars, cadascuna d’elles és completament inútil per a gairebé tots els usuaris de MySQL.
MariaDB
Aquesta forquilla va ser creada per Monty Widenius el 2009 després de la seva sortida de Sun Microsystems, a causa tant dels problemes amb aquesta companyia com de l'adquisició de la mateixa pel competidor Oracle. [22] Aquesta última motivació ha portat a molts dels principals desenvolupadors de MySQL a unir-se a Widenius al programa Monty, la nova companyia que va començar a donar suport a la bifurcació.
El nom MariaDB es deu al fet que inicialment aquesta bifurcació es va centrar principalment en el desenvolupament del motor d'emmagatzematge Aria, el nom antic del qual era Maria dedicat a la tercera filla de Widenius, una mena d'evolució de MyISAM.
S'han inclòs els pedaços realitzats per tercers, en particular extrets de les forquilles MySQL desenvolupades per Google, Facebook i Twitter, així com motors d'emmagatzematge desenvolupats per tercers. A més, s’han desenvolupat especialment altres millores al servidor i alguns motors d’emmagatzematge addicionals, algunes evolucions desenvolupades per MySQL s’han importat a la forquilla i s’han corregit alguns errors del programa original.
Servidor Percona
Percona Server amb XtraDB, o simplement Percona Server, és un fork desenvolupat per Percona que conté, a més del motor d’emmagatzematge XtraDB (fork d’ InnoDB ), diversos pegats desenvolupats principalment per la mateixa empresa.
El nostreDelta
Va ser una distribució desenvolupada per l’empresa australiana Open Query . La branca 5.0 (primera versió del programa) es basava en el codi MySQL 5.0, mentre que les branques 5.1 i 5.2 es basaven en MariaDB 5.1 i 5.2. OurDelta va aplicar diversos pegats desenvolupats per tercers i crea paquets per a les distribucions GNU / Linux Debian, Ubuntu, Red Hat i CentOS.
Aquesta bifurcació ja no es manté. Els darrers canvis al codi, encara allotjats a Launchpad, es remunten al febrer de 2010.
Escala provada
Proved Scaling afegeix diversos connectors de la comunitat de programari lliure a l'edició empresarial de MySQL.
La bifurcació va néixer de l’observació que MySQL Community Edition estava gairebé morta: segons els manifestants, els anuncis oficials només preveien dues versions anuals més algunes solucions de seguretat i, per tant, un usuari hauria d’utilitzar MySQL Enterprise Edition o resignar-se a utilitzar productes obsolets. [23]
El dipòsit conté versions, fins i tot anteriors, per a tots els sistemes operatius compatibles amb MySQL.
Nota
- ^ (EN) Què és MySQL? , a dev.mysql.com , Oracle Corporation . Consultat el 22 de juny de 2014 .
"La forma oficial de pronunciar" MySQL "és" My Ess Que Ell "(no" la meva seqüela "), però no ens importa si la pronuncieu com" la meva seqüela "o d'alguna altra manera localitzada." . - ^ (EN) Llicència comercial per a OEM, ISV i VAR , a mysql.com, Oracle Corporation . Consultat el 22 de juny de 2014 .
"Oracle proporciona el seu servidor de base de dades MySQL i les biblioteques de clients MySQL sota un model de llicència doble dissenyat per satisfer les necessitats de desenvolupament i distribució tant de distribuïdors comercials (com OEM, ISV i VAR) com de projectes de codi obert". . - ^ (EN) MySQL Standards Compliance , a radionomy.com, Oracle Corporation . Consultat el 22 de juny de 2014 .
"Un dels nostres principals objectius amb el producte és continuar treballant per complir l'estàndard SQL, però sense renunciar a la velocitat ni la fiabilitat". . - ^ (EN) MySQL Differences from Standard SQL , de dev.mysql.com, Oracle Corporation . Consultat el 22 de juny de 2014 .
"Intentem que MySQL Server segueixi l'estàndard ANSI SQL i l'estàndard SQL ODBC, però MySQL Server realitza operacions de manera diferent en alguns casos" . - ^ (EN) Quant a WordPress , a wordpress.org, WordPress . Consultat el 22 de juny de 2014 .
"WordPress va néixer del desig d'un sistema de publicació personal elegant i ben arquitecturat basat en PHP i MySQL" . - ^ (EN) Què és Joomla? , a joomla.org , Joomla . Consultat el 22 de juny de 2014 .
"Joomla es basa en PHP i MySQL" . - ^ Quant a Drupal , a drupal.it , Drupal . Consultat el 22 de juny de 2014 .
"Utilitza MySQL i PostgreSQL com a base de dades de forma nativa, però es pot utilitzar amb qualsevol tipus de servidor de bases de dades." . - ^ A b (EN) Sun Microsystems anuncia un acord per adquirir MySQL
- ^ (EN) Oracle completa l'adquisició de Sun [ enllaç trencat ] , a finance.yahoo.com , Yahoo Finance, 27 de gener de 2010. Obtingut el 4 de febrer de 2010 .
- ^ (EN) Noves extensions comercials per a MySQL Enterprise Edition
- ^ Wikipedia adopta MariaDB , a blog.wikimedia.org .
- ^ Monty ha riure per última vegada que les distribucions abandonen MySQL , a itwire.com .
- ^ MariaDB vivint temps interessants , a monty-says.blogspot.it .
- ^ Distribucions incloses MariaDB , a kb.askmonty.org . Consultat el 24 de juny de 2013 (arxivat de l' original el 20 de març de 2013) .
- ^ (EN) Nom del servei i protocol de transport Registre de números de port a l'autoritat de números assignats a Internet . Consultat el 17 de febrer de 2021 .
- ^ (EN) Capítol 3 Taules de referència del port MySQL , a dev.mysql.com. Consultat el 17 de febrer de 2021 .
- ^ (EN) Característiques principals de MySQL a dev.mysql.com, Oracle Corporation . Consultat el 29 de juny de 2014 .
«Escrit en C i C ++» . - ^ solidDB , a dev.soliddb.com .
- ^ RitmarkFS (arxivat de l'original el 13 de juliol de 2006) .
- ^ El motor de dades distribuït (arxivat des de l'original el 27 de juny de 2006) .
- ^ mdbtools , a sourceforge.net .
- ^ ( EN ) entrevista amb Widenius sobre Mysql i la recent forquilla que va crear: MariaDB
- ^ Hem de proclamar MySQL Community Edition morta? - Bloc de rendiment MySQL
Articles relacionats
- Sistema de gestió de bases de dades
- SQL
- Motor d'emmagatzematge
- mSQL
- phpMyAdmin
- Gestor MySQL
- Proxy MySQL
- MySQL Workbench
- MariaDB
- Base de dades al núvol
Altres projectes
-
Wikimedia Commons conté imatges o altres fitxers a MySQL
Enllaços externs
- ( EN ) Lloc oficial , a mysql.com .
- MySQL (canal), a YouTube .
- ( EN ) MySQL , a GitHub .
- Dipòsit font MySQL , a github.com .
- Lloc d’informació d’errors , a bugs.mysql.com .
- ( EN ) MySQL , al Directori de programari lliure .
- MySQL , del lloc Oracle
- Manual d'administrador de MySQL
- Manual del navegador de consultes MySQL
- ( EN ) MySQL Migration Toolkit Manual
- (EN) Blog MySQL d'Oracle a blogs.oracle.com.
- ( EN ) MySQL Forge Wiki , la wiki oficial dedicada a MySQL (arxivada)
- Petit tutorial per a phpMyAdmin , de HTML.it
- Guia MySQL en italià , de MRW.it
Controllo di autorità | GND ( DE ) 4559381-4 |
---|