MySQL

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
MySQL
software
Siglă
Client de linie de comandă MySQL (în Debian).
Client de linie de comandă MySQL (în Debian ).
Tip Sistem de gestionare a bazelor de date relaționale
Dezvoltator Oracle Corporation
Data primei versiuni 1994
Ultima versiune 8.0.26 (20 iulie 2021)
Sistem de operare Multiplatform
Limba C.
C ++
Licență GNU GPL și licență comercială
( licență gratuită )
Site-ul web www.mysql.com/

MySQL sau Oracle MySQL (/ maɪ ˌɛskjuːˈɛl / "My SQL") [1] este un sistem de gestionare a bazelor de date relaționale (RDBMS) compus dintr-un client de linie de comandă și un server , ambele disponibile atât pentru sistemele Unix și Unix-like, cât și pentru Windows ; principalele platforme de referință sunt Linux și Oracle Solaris .

Software-ul gratuit lansat sub licență dublă, inclusiv GNU General Public License , dezvoltat pentru a fi cât mai conform cu standardele ANSI SQL și ODBC SQL. [2] [3] [4] , sistemele și limbajele de programare care îl susțin sunt foarte numeroase: ODBC , Java , Mono , .NET , PHP , Python și multe altele.

Platformele LAMP și WAMP încorporează MySQL pentru implementarea serverelor de gestionare a site-urilor web dinamice, în plus, multe dintre sistemele de gestionare a conținutului de succes , precum WordPress , Joomla , Drupal și TikiWiki, se nasc cu suportul implicit pentru MySQL. [5] [6] [7] Software-ul MediaWiki , care gestionează site-urile proiectului Wikimedia , se bazează pe o bază de date MySQL.

Istorie

MySQL Codul sursă a fost deținută inițial de compania MySQL AB, dar a fost distribuit sub GNU GPL licența precum și o reclamă de licență . Până la versiunea 4.0, o mare parte din codul clientului a fost licențiată sub GNU LGPL și, prin urmare, ar putea fi folosită și pentru aplicații proprietare. Începând cu versiunea 4.1, codul clientului este distribuit și sub GNU GPL. Cu toate acestea, există o clauză extinsă care permite utilizarea MySQL cu o gamă largă de licențe gratuite.

În iulie 2007, compania suedeză MySQL AB avea 385 de angajați în numeroase țări. Veniturile sale principale au venit din sprijinirea utilizatorilor MySQL prin pachetul Enterprise , vânzarea de licențe comerciale și utilizarea de către terți a mărcii MySQL . La 16 ianuarie 2008 , Sun Microsystems a cumpărat compania pentru un miliard de dolari, [8] estimând piața bazei de date în 15 miliarde de dolari .

La 20 aprilie 2009, companiei Sun Microsystems i sa oferit o achiziție de către Oracle pentru 7,4 miliarde de dolari. Acordul, aprobat de antitrustul SUA, a fost apoi trecut la controlul organismelor corespunzătoare ale Uniunii Europene, îngrijorat de conflictul de interese constituit de bazele de date comerciale Oracle în ceea ce privește MySQL. Michael Widenius , tatăl MySQL, a lansat o petiție online pentru a se opune fuziunii. În ciuda acestui fapt, Uniunea Europeană a dat un aviz favorabil, iar achiziția a fost finalizată la 27 ianuarie 2010 [9] .

Sucursala 5.5 este prima care include extensii non-Open Source, disponibile numai în versiunea Enterprise plătită. [8] [10]

Din 2012, mai multe distribuții Linux și unii utilizatori importanți, cum ar fi Wikipedia [11], au început să înlocuiască MySQL cu furca MariaDB [12] [13] [14] .

Dezvoltare

Până la acum câțiva ani [ înlocuiți referința relativă cu una absolută ] , dezvoltarea programului a fost realizată în principal de dezvoltatorii săi inițiali: David Axmark , Allan Larsson și Michael Widenius . Acesta din urmă a fost autorul principal al codului, precum și acționarul principal al companie [ Care? Au fost 2 achiziții ] și încă coordonează proiectul, printre altele prin evaluarea contribuțiilor primite de la voluntari. Contribuțiile sunt acceptate cu condiția ca autorul lor să împărtășească drepturile de autor cu companie [ Care? Au fost 2 achiziții ] .

Caracteristici

Autoritatea de numere atribuite prin Internet a atribuit în mod oficial portul 3306 serverului MySQL. [15] [16]

Versiuni

3.23

Prima versiune alfa a ramurii 3.23.x a fost lansată în iulie 1999. Prima versiunea de producție [ neclară ] este din ianuarie 2001. În versiunile 3.23.x, au fost adăugate tipurile de tabele MyISAM (înlocuind vechiul Isam), HEAP (acum MEMORY), InnoDB și BDB. De asemenea, au fost adăugate căutarea textului integral și replicarea bazei de date.

4.0

În octombrie 2001 a fost lansată prima versiune alfa a ramurii 4.0.x, în timp ce în martie 2003 a intrat în producție. Cele mai semnificative adăugiri sunt:

  • un cache pentru interogări
  • Interogări de tip UNION
  • ȘTERGEȚI mai multe mese
  • tabele de îmbinare îmbunătățite pentru a susține INSERT-uri și câmpuri cu autoincrementare
  • limitarea resurselor care pot fi utilizate de fiecare utilizator individual
  • variabile de mediu care pot fi resetate cu comanda SET
  • o bibliotecă pentru a încorpora funcții MySQL într-un alt program

4.1

Prima versiune a ramurii 4.1.x datează din aprilie 2003 , în timp ce în octombrie 2004 a intrat în producție. Cele mai semnificative adăugiri sunt:

  • Subcercetările. Acestea sunt interogări SQL imbricate. Prin urmare, aveți ocazia să scrieți:
 SELECT * FROM table1 WHERE column1 = ( SELECTARE coloană1 DIN tabel2 LIMIT 1 )
  • Date geografice stocate conform modelului OpenGIS ;
  • Declarațiile pregătite ;
  • Conexiuni SSL / TLS ;
  • Set de caractere setabil la nivel de bază de date, tabel și coloană; a adăugat suport pentru Unicode (UTF8 și UCS2);
  • Comentarii la nivel de coloană.

5.0

Pe 22 decembrie 2003 a fost lansată prima versiune a seriei 5.0, care a intrat în producție pe 19 octombrie 2005 . Cele mai semnificative adăugiri sunt:

  • Vizualizările , tabele virtuale obținute dintr-o interogare SQL, care pot fi actualizate atunci când este posibil;
  • Proceduri stocate , un adevărat limbaj de programare pentru a interacționa cu datele bazei de date. În plus față de parametrii obișnuiți de căutare și selecție, este posibilă inserarea constructelor [IF ... THEN ... ELSE], doar pentru a da un exemplu;
  • Declanșatoare , instrucțiuni SQL care sunt lansate automat înainte sau după executarea anumitor interogări pe anumite tabele
  • INFORMATION_SCHEMA , o bază de date virtuală care descrie structura tuturor celorlalte baze de date; în plus, comenzile SHOW, care returnează și informații despre structura bazelor de date, au fost îmbunătățite;
  • Tipul de date BIT ;
  • Gestionarea fusului orar adecvat (fus orar);
  • Tipurile de tabele Arhivă și Federate;
  • Un API bine structurat pentru dezvoltarea de noi tipuri de tabele.

5.1

Prima versiune alfa publică a fost lansată pe 29 noiembrie 2005 . Principalele caracteristici noi sunt:

  • Partiționarea tabelelor;
  • Un API pentru a scrie noi interpretoare pentru căutările FULLTEXT;
  • Evenimente;
  • Replicare bazată pe date (în loc de interogări);
  • Jurnalele pot fi scrise într-o bază de date, precum și în fișiere text;
  • Suport Xpath ;
  • Câmpuri AUTOINCREMENT și diverse optimizări pentru tabelele ARHIVĂ;
  • ClusterDB poate acum să scrie date pe disc, precum și să le stocheze în RAM; suportă și MontaVista ;
  • ALTER TABLE, CREATE INDEX și DROP INDEX sunt mult mai performante.

5.2

Versiunea 5.2 este în fază alfa și principalele modificări sunt noul motor de stocare Falcon și backup online. Pe site-ul MySQL, toate referințele la versiunea 5.2 au dispărut și modificările care ar fi trebuit introduse au fost planificate pentru versiunea 6.0.

5.4

Aceasta este prima ramură dezvoltată sub umbrela Soarelui, acum Oracle. Prin urmare, nu este o coincidență faptul că această versiune a avut ca unic scop optimizarea serverului pe sistemele Solaris și pe hardware-ul SPARC, precum și optimizarea InnoDB, în special a configurației sale implicite care anterior avea defecte semnificative.

5.5

Aceasta este prima ramură care a devenit stabilă sub umbrela lui Oracle. Versiunea 5.5 introduce mai multe funcții noi:

  • Replicarea semisincronă oferă o garanție mai mare asupra datelor, deoarece commitul din baza de date Master așteaptă ca cel puțin un Slave să fi primit modificările;
  • Este introdus Schema de performanță care conține numeroase vizualizări utile pentru reglarea bazei de date;
  • Motorul InnoDB devine implicit, performanța sa este crescută și este scalabilă pe procesoare multicore moderne.

5.6

Este ultima versiune lansată în producție. Există multe funcții noi în versiunea 5.6, dintre care unele sunt foarte anticipate:

  • Gestionarea microsecundelor și milisecundelor în tipuri de date temporale și ștampile de timp;
  • Abilitatea de a verifica datele cache cache și erorile aferente;
  • Vizualizări noi, utile pentru monitorizarea și reglarea bazei de date, în Schema de performanță și Schema de informații;
  • Capacitatea de a exclude anumite directoare din căutare ca nume de bază de date;
  • Utilizarea căutărilor textuale (CĂUTARE FULLTEXT) pe motorul InnoDB;
  • O interfață memcache pe tabelele InnoDB;
  • Multe extensii utile care îmbunătățesc securitatea bazei de date.

5.7

Această ramură este în curs de dezvoltare. Noutățile sunt în principal în motorul de stocare InnoDB. Ramura 5.7 introduce, de asemenea, TABELUL ALTER online și stiva de erori.

6.0

Această versiune a fost anulată, iar unele dintre codurile dezvoltate nu vor fi incluse în versiunile viitoare. Unele dintre caracteristicile MariaDB au fost importate din această ramură.

Compatibilitate

MySQL, fiind scris în limbaj C și C ++ , este disponibil pe multe sisteme de operare diferite , inclusiv 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]

Platformele de referință sunt Linux și Solaris. Cu toate acestea, documentația MySQL oferă ajutor celor care trebuie să încerce să compileze software-ul pe orice sistem de operare destul de popular.

MySQL folosește, de asemenea, instrumentele automake , autoconf și libtools pentru a crește compatibilitatea.

Tabelele de tip BDB vor funcționa numai pe următoarele sisteme de operare: GNU / Linux 2.x Intel, Solaris (SPARC și x86), FreeBSD 4.x / 5.x (x86, sparc64), AIX 4.3.x, SCO OpenServer, SCO UnixWare 7.1.x

Drivere sunt disponibile pentru C , C ++ , C # , Eiffel , Java , Perl , PHP , Python , Ruby , Tcl și pentru Mono și. Net.

În cele din urmă, limbajul SQL MySQL include numeroase extensii care sunt tipice altor DBMS-uri, cum ar fi PostgreSQL, Oracle și Sybase. În acest fel, interogările non-standard scrise pentru alte SGBD vor funcționa fără probleme în unele cazuri.

Administrare

Pictogramă lupă mgx2.svg Același subiect în detaliu: MySQL Manager .
Pagina principală PhpMyAdmin

Există mai multe tipuri de MySQL Manager , care sunt instrumente pentru administrarea MySQL. Unul dintre cele mai populare programe pentru administrarea bazelor de date MySQL este phpMyAdmin, care necesită un server web, cum ar fi Apache HTTP Server și suport pentru limbajul PHP . Poate fi utilizat cu ușurință prin orice browser .

Unele oferte de la terți sunt HeidiSQL , SQLYog sau Toad for MySQL . Alternativ, MySQL AB în sine oferă programe precum MySQL Administrator (administrarea bazei de date, utilizatori, operațiuni programate, încărcare server, ...) și MySQL Query Browser (execuție a diferitelor tipuri de interogări), MySQL Migration Toolkit pentru a importa din alt DBMS.

Pentru proiectarea și modelarea bazelor de date MySQL, există MySQL Workbench : integrează proiectarea, modelarea, crearea și actualizarea bazelor de date într-un singur mediu de lucru.

În trecut, a fost dezvoltat și MySQLcc (centrul de control MySQL), înlocuit de MySQL Query Browser .

Ca alternativă la managerii grafici, este posibil să utilizați linia de comandă direct, preferată de utilizatorii / administratorii experimentați.

Tipuri de tabele MYSQL (motor de stocare)

În MySQL, un tabel poate fi de diferite tipuri (sau motoare de stocare ). Fiecare tip de tabel are proprietăți și caracteristici diferite (tranzacționale sau altele, performanțe mai bune, strategii diferite de blocare, funcții particulare etc.). Există, de asemenea, un API pe care îl puteți utiliza pentru a crea relativ ușor un nou tip de tabel, pe care îl puteți instala apoi fără a fi nevoie să recompilați sau să reporniți serverul.

Motoare oficiale de stocare

Tipurile de tabele implicite sunt:

  • MyISAM
  • InnoDB (tranzacțional, dezvoltat de InnoBase Oy, o companie cumpărată acum de Oracle)
  • Memorie (numită odată Heap)
  • Combina
  • NDB sau ClusterDB (introdus în 5.0)
  • CSV (introdus în 5.1)
  • Federat (introdus în 5.0)
  • Arhivă (introdusă în 5.0)
  • BLACKHOLE (introdus în 5.0)
  • Falcon (nu a fost niciodată terminat și proiectul este abandonat)
  • Aria (a fost dezvoltat inițial pentru MySQL, care nu l-a adoptat niciodată; este în schimb prezent în MariaDB )

Motoare de stocare produse de terți

Există, de asemenea, motoare de stocare produse de terți. Aici sunt câțiva dintre ei:

  • XtraDB - Fork of InnoDB, dezvoltat de Percona
  • OQGRAPH - Simulează structuri grafice
  • SolidDB [18] - Motor tranzacțional
  • RitmarkFS [19] - Permite accesul la citire și scriere a sistemului de fișiere prin comenzi SQL, acceptă și replicarea sistemului de fișiere
  • Distributed Data Engine [20] - Motor pentru date distribuite, pentru a gestiona mai bine volumul de lucru
  • SphinxSE - Interfață MySQL cu Sphinx
  • CassandraSE - Interfață MariaDB cu Apache Cassandra
  • mdbtools [21] - Vă permite să citiți și să scrieți un fișier. mdb (acces)
  • BrightHouse - Apare utilizatorului ca un MyISAM normal, dar structurează intern datele mai degrabă pe coloane decât pe rânduri. De obicei, pentru a fi utilizat în citire pentru Data Warehouse: reduce timpul de acces și spațiul pentru date de la 10 la 100 de ori.

Unele dintre aceste motoare de stocare sunt distribuite cu MariaDB sau Percona Server.

Motoare de depozitare învechite

  • ISAM (nu mai este acceptat; era motorul implicit înainte de a fi înlocuit cu MyISAM)
  • BDB (tranzacțional, dezvoltat de SleepyCat, o companie achiziționată acum de Oracle; de ​​la versiunea 5.1.12 nu mai este prezentă în MySQL)
  • Gemeni (nu mai este acceptat și nu mai este compatibil cu API-ul MySQL de mulți ani). A fost odată foarte important ca motor tranzacțional; a fost produs de NuSphere, care nu a respectat niciodată licența GPLv2 a MySQL și în instanță a încercat să-i refuze validitatea legală, pentru a conveni apoi cu MySQL să plătească daunele economice și să retragă produsul de pe piață. Dezvoltarea și sprijinul pentru Gemeni au încetat.
  • PBXT - Motor tranzacțional conceput pentru aplicații web cu concurență ridicată, distribuit cu MariaDB.
  • Amira este o furculiță a Gemenilor și a fost întreținută de comunitate de ceva timp.

Furculiţă

Unele furci s-au născut în critica lipsei deschiderii MySQL față de contribuțiile voluntarilor externi și a încetinirii publicării corecțiilor raportate.

Burniță

Pictogramă lupă mgx2.svg Același subiect în detaliu: Ploaie .

Născut de Brian Aker între aprilie și mai 2008, această furcă este propusă ca un SGBD ușor. De fapt, începând cu MySQL 6, unii dezvoltatori și-au eliminat majoritatea funcțiilor, păstrând inima, curățând-o și modificându-i arhitectura. Ideea este de a crea un microkernel cu numeroase interfețe pe care să le poată utiliza pentru a încărca funcționalități externe.

În timpul procesului de curățare, codul a crescut la o dimensiune mai mică de 200 KB. [ fără sursă ] Printre caracteristicile eliminate sunt: ​​proceduri stocate, vizualizări, declanșatoare, instrucțiuni pregătite, cache, MyISAM. Potrivit dezvoltatorilor, toate aceste caracteristici ar putea fi reimplementate sub formă de pluginuri, fără a împovăra inutil utilizatorii care nu le folosesc: deși aceste caracteristici sunt de neînlocuit în situații particulare, fiecare dintre ele este complet inutilă pentru aproape toți utilizatorii MySQL.

MariaDB

Pictogramă lupă mgx2.svg Același subiect în detaliu: MariaDB .

Această furcă a fost creată de Monty Widenius în 2009, după plecarea sa de la Sun Microsystems, datorită atât problemelor cu această companie, cât și achiziționării acesteia de către concurentul Oracle. [22] Această ultimă motivație i-a determinat pe mulți dintre principalii dezvoltatori MySQL să se alăture Widenius în programul Monty, noua companie pe care a început să o susțină.

Numele MariaDB se datorează faptului că inițial această furcă se concentra în principal pe dezvoltarea motorului de stocare Aria, al cărui nume vechi era Maria dedicată celei de-a treia fiice a lui Widenius, un fel de evoluție a MyISAM.

Au fost incluse patch-uri realizate de terți, în special preluate de pe furcile MySQL dezvoltate de Google, Facebook și Twitter, precum și motoare de stocare dezvoltate de terți. În plus, au fost dezvoltate special alte îmbunătățiri ale serverului și unele motoare de stocare suplimentare, unele evoluții dezvoltate pentru MySQL au fost importate în furcă și unele erori din programul original au fost remediate.

Server Percona

Pictogramă lupă mgx2.svg Același subiect în detaliu: Percona Server .

Percona Server cu XtraDB, sau pur și simplu Percona Server, este o furcă dezvoltată de Percona care conține, pe lângă motorul de stocare XtraDB (furca InnoDB ), mai multe patch-uri dezvoltate în principal de aceeași companie.

Delta noastră

A fost o distribuție dezvoltată de compania australiană Open Query . Ramura 5.0 (prima versiune a programului) s-a bazat pe codul MySQL 5.0, în timp ce ramurile 5.1 și 5.2 s-au bazat pe MariaDB 5.1 și 5.2. OurDelta a aplicat mai multe patch-uri dezvoltate de terți și creează pachete pentru distribuțiile GNU / Linux Debian, Ubuntu, Red Hat și CentOS.

Această furcă nu mai este întreținută. Cele mai recente modificări ale codului, încă găzduite pe Launchpad, datează din februarie 2010.

Scalare dovedită

Scalarea dovedită adaugă diverse plugin-uri din comunitatea software-ului gratuit la ediția enterprise MySQL.

Furca s-a născut din observația că MySQL Community Edition era aproape moartă: potrivit protestatarilor, anunțurile oficiale prevedeau doar două versiuni anuale plus câteva remedieri de securitate și, prin urmare, un utilizator ar trebui să folosească MySQL Enterprise Edition sau să se resemneze să folosească produse învechite. [23]

Depozitul conține versiuni, chiar și mai vechi, pentru toate sistemele de operare acceptate de MySQL.

Notă

  1. ^ (EN) Ce este MySQL? , la dev.mysql.com , Oracle Corporation . Adus la 22 iunie 2014 .
    „Modalitatea oficială de a pronunța„ MySQL ”este„ My Ess Que Ell ”(nu„ continuarea mea ”), dar nu ne deranjează dacă o pronunți ca„ continuarea mea ”sau într-un alt mod localizat.” .
  2. ^ (EN) Licență comercială pentru OEM, ISV și VAR , pe mysql.com, Oracle Corporation . Adus la 22 iunie 2014 .
    "Oracle furnizează serverul său de baze de date MySQL și bibliotecile client MySQL sub un model de licență duală conceput pentru a satisface nevoile de dezvoltare și distribuție atât ale distribuitorilor comerciali (cum ar fi OEM-urile, ISV-urile și VAR-urile), cât și ale proiectelor open source." .
  3. ^ (EN) Conformitate cu standardele MySQL , pe radionomy.com, Oracle Corporation . Adus la 22 iunie 2014 .
    „Unul dintre principalele noastre obiective cu produsul este să continuăm să lucrăm pentru respectarea standardului SQL, dar fără a sacrifica viteza sau fiabilitatea.” .
  4. ^ (EN) Diferențe MySQL față de Standard SQL , de la dev.mysql.com, Oracle Corporation . Adus la 22 iunie 2014 .
    „Încercăm să facem MySQL Server să urmeze standardul ANSI SQL și ODBC SQL, dar MySQL Server efectuează operațiuni diferit în unele cazuri” .
  5. ^ (RO) Despre WordPress , pe wordpress.org, WordPress . Adus la 22 iunie 2014 .
    „WordPress s-a născut din dorința unui sistem de publicare personal elegant, bine arhitecturat, construit pe PHP și MySQL” .
  6. ^ (RO) Ce este Joomla? , pe joomla.org , Joomla . Adus la 22 iunie 2014 .
    „Joomla se bazează pe PHP și MySQL” .
  7. ^ Despre Drupal , pe drupal.it , Drupal . Adus la 22 iunie 2014 .
    "Folosește MySQL și PostgreSQL ca bază de date în mod nativ, dar poate fi utilizat cu orice tip de server de baze de date." .
  8. ^ A b(EN) Sun Microsystems anunță acordul de achiziție MySQL
  9. ^ (EN) Oracle finalizează achiziția Sun [ link rupt ] , pe finance.yahoo.com , Yahoo Finance, 27 ianuarie 2010. Adus pe 4 februarie 2010 .
  10. ^(RO) Noi extensii comerciale pentru MySQL Enterprise Edition
  11. ^ Wikipedia adoptă MariaDB , la blog.wikimedia.org .
  12. ^ Monty a râs ultima dată când distrosurile abandonează MySQL , pe itwire.com .
  13. ^ MariaDB trăind în vremuri interesante , pe monty-says.blogspot.it .
  14. ^ Distribuții, inclusiv MariaDB , la kb.askmonty.org . Adus la 24 iunie 2013 (arhivat din original la 20 martie 2013) .
  15. ^ (RO) Numele serviciului și protocolul de transport Numărul portului Registrul de pe internet Autoritatea numerelor atribuite . Adus la 17 februarie 2021 .
  16. ^ (RO) Capitolul 3 Tabelele de referință ale portului MySQL , pe dev.mysql.com. Adus la 17 februarie 2021 .
  17. ^ (RO) Principalele caracteristici ale MySQL pe dev.mysql.com, Oracle Corporation . Adus pe 29 iunie 2014 .
    «Scris în C și C ++» .
  18. ^ solidDB , la dev.soliddb.com .
  19. ^ RitmarkFS (arhivat din original la 13 iulie 2006) .
  20. ^ Motorul de date distribuite (arhivat din original la 27 iunie 2006) .
  21. ^ mdbtools , pe sourceforge.net .
  22. ^ ( EN ) interviu cu Widenius despre Mysql și furca recentă pe care a creat-o: MariaDB
  23. ^ Ar trebui să proclamăm MySQL Community Edition Dead? - Blog de performanță MySQL

Elemente conexe

Alte proiecte

linkuri externe

Controllo di autorità GND ( DE ) 4559381-4
Software libero Portale Software libero : accedi alle voci di Wikipedia che trattano di software libero