MySQL

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 14 septembrie 2022; verificarea necesită 1 editare .
MySQL
Tip de SGBD relațional , software open source și software server
Dezvoltator MySQL AB , Sun Microsystems și Oracle
Scris in C++ [2] și C [3]
Sistem de operare Linux [4] , Microsoft Windows [4] , macOS [4] , FreeBSD [4] , Solaris [4] și sistem de operare asemănător Unix
Prima editie 1995
Platformă hardware x86_64 [5] , IA-32 [5] , A64 [d] [5] și SPARC [5]
ultima versiune
Formate de fișiere care pot fi citite Format de definiție a tabelului MySQL [d]
Formate de fișiere generate Format de definiție a tabelului MySQL [d]
Licență GNU GPL 2 [6] și proprietar [7]
Site-ul web mysql.com
 Fișiere media la Wikimedia Commons

MySQL ( IPA: [maɪ ˌɛskjuːˈɛl] ) este un sistem gratuit de gestionare a bazelor de date relaționale [8] . MySQL este dezvoltat și susținut de Oracle Corporation , care a achiziționat drepturile asupra mărcii înregistrate împreună cu Sun Microsystems , care a achiziționat anterior compania suedeză MySQL AB . Produsul este distribuit atât sub licența publică generală GNU, cât și sub propria licență comercială. În plus, dezvoltatorii creează funcționalități pentru utilizatorii licențiați. Datorită acestei comenzi, mecanismul de replicare a apărut în aproape cele mai vechi versiuni .

MySQL este soluția pentru aplicații mici și mijlocii. Inclus în serverele WAMP , AppServ , LAMP și în ansamblurile portabile ale serverelor Denver , XAMPP , VertrigoServ . MySQL este de obicei folosit ca un server accesat de clienți locali sau la distanță, dar distribuția include o bibliotecă internă de server care vă permite să includeți MySQL în programe independente.

Flexibilitatea SGBD-ului MySQL este susținută de un număr mare de tipuri de tabele: utilizatorii pot alege între tabele MyISAM care acceptă căutarea full-text și tabele InnoDB care acceptă tranzacții la nivelul înregistrărilor individuale. Mai mult, MySQL vine cu un tip special de tabel EXEMPLU care demonstrează cum se creează noi tipuri de tabele. Datorită arhitecturii sale deschise și licențelor GPL, noi tipuri de tabele sunt adăugate constant în baza de date MySQL.

Pe 26 februarie 2008, Sun Microsystems a achiziționat MySQL AB pentru 1 miliard de dolari [9] , pe 27 ianuarie 2010, Oracle a achiziționat Sun Microsystems pentru 7,4 miliarde de dolari [10] și a adăugat MySQL la gama sa DBMS [11] .

Comunitatea de dezvoltatori MySQL a creat diverse fork - uri ale codului, cum ar fi DrizzlePercona Server și MariaDB . Toate aceste furci existau deja la momentul preluării de către Sun de către Oracle.

Originile MySQL

MySQL a apărut ca o încercare de a aplica mSQL dezvoltărilor proprii ale companiei: tabele pentru care a fost folosit ISAM  - rutine de nivel scăzut. Ca rezultat, a fost dezvoltată o nouă interfață SQL , dar API-ul a fost moștenit de la mSQL. De unde provine numele „MySQL” nu se știe cu siguranță. Dezvoltatorii oferă două opțiuni: fie pentru că aproape toate dezvoltările companiei au început cu prefixul „My ...” (din  engleză  -  „my ...”), fie în onoarea fiicei lui Myu ( fin. My ) unul dintre dezvoltatorii sistemului Mikael Widenius [12] [13] .

Sigla MySQL delfinului poartă numele „ Sakila ”. A fost ales dintr-o listă mare de „nume de delfini” sugerate de utilizatori. Numele " Sakila " a fost trimis de dezvoltatorul Open Source Ambrose Twebaze .

Licențiere

MySQL are licență duală. MySQL poate fi distribuit în condiții de licență. Cu toate acestea, în conformitate cu termenii GPL, dacă vreun program folosește bibliotecile MySQL (sau include alt cod GPL), atunci trebuie să fie distribuit și sub licența GPL. Acest lucru poate fi în contradicție cu planurile dezvoltatorilor care nu doresc să deschidă programele lor. Pentru astfel de cazuri, este furnizată o licență comercială, care oferă, de asemenea, asistență pentru servicii de înaltă calitate. Pentru software-ul gratuit, Oracle oferă o excepție separată de la regula care permite în mod explicit utilizarea și redistribuirea MySQL cu software-ul licențiat conform unei liste specificate de Oracle. [paisprezece]

Platforme

MySQL a fost portat pe un număr mare de platforme: AIX , BSDi , FreeBSD , HP-UX , Linux , macOS , NetBSD , OpenBSD , OS/2 Warp, SGI IRIX , Solaris , SunOS , SCO OpenServer , UnixWare , Tru64 , Windows 95 , Windows 98 , Windows NT , Windows 2000 , Windows XP , Windows Server 2003 , WinCE, Windows Vista , Windows 7 și Windows 10 . Există, de asemenea, un port MySQL pentru OpenVMS . Pe site-ul oficial al SGBD, nu numai codurile sursă sunt disponibile pentru descărcare gratuită, ci și module executabile MySQL DBMS gata făcute , compilate și optimizate pentru anumite sisteme de operare .

Limbaje de programare

MySQL are API-uri [15] și conectori pentru Delphi , C , C++ , Eiffel , Java , Lisp , Perl , PHP , Python , Ruby , Smalltalk , Component Pascal , Tcl și Lua , biblioteci pentru limbajele platformei .NET și oferă, de asemenea, suport pentru pentru ODBC folosind driverul ODBC MyODBC .

MyODBC este un driver ODBC (2.50) de nivel 0 (cu unele caracteristici de nivel 1 și 2) pentru conectarea unei aplicații compatibile ODBC la MySQL. MyODBC rulează pe toate sistemele Microsoft Windows și pe majoritatea platformelor Unix .

Istoricul lansărilor

[16] [17] [18] [19] [20] [21] [22]

MySQL 4.0

Deși versiunea 4.0 este învechită, are încă o distribuție semnificativă. . Principalele caracteristici ale acestei versiuni:

MySQL 4.1

Versiunea recomandată pentru 2005 este MySQL 4.1, lansată pe 27 octombrie 2004 . Conține următoarele inovații:

MySQL 5.0

Lansat pe 24 octombrie 2005, MySQL 5.0 este o versiune cu funcționalități semnificativ îmbunătățite, care plasează MySQL la egalitate cu SGBD-urile comerciale . Dacă anterior MySQL a fost acuzat de suport insuficient pentru standardul SQL , atunci odată cu apariția celei de-a cincea versiuni a acestei baze de date populare, a apărut suport aproape complet pentru standardul SQL. MySQL 5.0 conține următoarele inovații:

MySQL 5.1

MySQL 5.1 continuă calea către standardul SQL:2003 . MySQL 5.1 conține următoarele inovații [25] [26] .

tip masa Maria

Maria (începând cu versiunea 5.2.x - Aria) este o versiune extinsă a depozitului MyISAM , cu adăugarea unor mijloace de menținere a integrității datelor după un accident.

Principalele avantaje ale Mariei [27] :

  • În cazul unui accident, rezultatele operațiunii curente sunt inversate sau revin la starea de dinaintea comenzii LOCK TABLES. Implementare prin operațiuni de logare.
  • Abilitatea de a restabili starea de oriunde în jurnalul de activitate, inclusiv suport pentru CREATE/DROP/RENAME/TRUNCATE. Poate fi folosit pentru a crea copii de rezervă incrementale prin copierea periodică a jurnalului de activitate.
  • Suport pentru toate formatele de coloane MyISAM, extins cu un nou format „rows-in-block” care folosește o modalitate paginată de stocare a datelor, în care datele din coloane pot fi stocate în cache.
  • În viitor vor fi implementate două moduri: tranzacțional și fără reflectare în jurnalul de tranzacții, pentru datele necritice.
  • Dimensiunea paginii de date este de 8 KB (în MyISAM 1 KB), ceea ce vă permite să obțineți performanțe mai bune pentru indici pe câmpuri de dimensiune fixă, dar mai lentă în cazul indexării cheilor cu lungime variabilă.

MySQL 5.5

Ramura MySQL 5.5 se bazează pe seria MySQL 5.4 nelansată și conține o serie de îmbunătățiri semnificative de scalabilitate și performanță, inclusiv:

  • Folosind motorul implicit InnoDB.
  • Suport pentru un mecanism de replicare semi-sincron bazat pe corecții pentru InnoDB de la Google.
  • Îmbunătățirea funcțiilor de partiționare a datelor. Sintaxă extinsă pentru împărțirea tabelelor mari în mai multe părți situate în sistemele de fișiere (partiționare). S-au adăugat operațiuni RANGE, LIST și metoda de optimizare „taierea partițiilor”.
  • Nou mecanism de optimizare pentru interogări imbricate și operațiuni JOIN.
  • Sistemul de blocare intern a fost reproiectat.
  • Patch-uri Google integrate cu optimizare InnoDB pe procesoare cu un număr mare de nuclee.

MySQL 6.0

MySQL 6.0 a fost înghețat în testarea alfa. Inițial, s-a decis să se creeze versiunea 5.2, în curând această versiune a fost redenumită la 6.0. Totuși, ulterior informațiile MySQL 6.0 au dispărut de pe site, iar dezvoltatorii s-au concentrat pe versiunea 5.5 și următoarea versiune 5.6.

Una dintre principalele inovații ale versiunii 6.0 a fost noul tip de masă Falcon , dezvoltat ca un potențial înlocuitor pentru InnoDB de către Innobase , achiziționat de Oracle . În legătură cu achiziția Sun Microsystems de către același Oracle în 2010 , soarta lui Falcon rămâne în discuție.

MySQL 5.7

Prima versiune a ramului MySQL 5.7.1 a fost anunțată pe 23 aprilie 2013. MySQL 5.7.8 este adaptat pentru Debian 8 și Ubuntu 15.04. Cea mai recentă versiune este 5.7.32 din 19.10.2020. [24]

MySQL 8.0

Versiunea 8.0.0 a fost lansată pe 09/12/2016, dar versiunea 8.0.11, lansată pe 04/19/2018, a fost oficial utilizabilă în întreaga lume. Cea mai recentă versiune este 8.0.22 (lansare din 19.10.2020) [28]

Specificații

Dimensiunile maxime ale tabelului

Dimensiunea maximă a tabelelor în MySQL 3.22 este de până la 4 gigaocteți, în versiunile ulterioare nu există restricții.

Dimensiunea unui tabel este limitată de tipul acestuia. În general, tipul MyISAM este limitat de limita de dimensiune a fișierului a sistemului de fișiere al sistemului de operare . De exemplu, pe NTFS această dimensiune ar putea fi teoretic de până la 32 de exaocteți . În cazul InnoDB , un tabel poate fi stocat în mai multe fișiere reprezentând un singur spațiu de masă . Dimensiunea acestuia din urmă poate ajunge la 64 de terabytes .

Spre deosebire de MyISAM , InnoDB are o limită semnificativă a numărului de coloane care pot fi adăugate la un singur tabel. Dimensiunea implicită a paginii de memorie este de 16 kiloocteți, dintre care 8123 de octeți sunt rezervați pentru date. Dimensiunea indicatorului către câmpuri dinamice este de 20 de octeți. Astfel, în cazul utilizării formatului de rând dinamic ( ROW_FORMAT=DYNAMIC), un tabel poate conține maximum 409 coloane de tip blobsau text.

Localizare

Începând cu versiunea 4.1, în SGBD -ul MySQL a fost implementat un nou sistem de codificări și colaționări . Când utilizați codificarea Windows-1251, înainte de a executa instrucțiuni SQL, trebuie să configurați codificarea conexiunii folosind operatorii:

SET character_set_client = 'cp1251' ; SET character_set_results = 'cp1251' ; SET character_set_connection = 'cp1251' ;

Aceste trei instrucțiuni sunt echivalente cu apelarea unei singure instrucțiuni:

SETĂ NUMELE „cp1251”

Variabila character_set_clientsetează codificarea datelor trimise de la client, variabila character_set_resultssetează codificarea datelor trimise către client, variabila character_set_connectionsetează codificarea în care informațiile primite de la client sunt convertite înainte ca cererea să fie executată pe server.

Când utilizați Unicode UTF-8, această declarație arată astfel:

SETĂ NUMELE „utf8mb4”

Codarea ISO 8859-5 nu este acceptată.

Problema cu Unicode

MySQL nu permite utilizarea corectă a expresiilor regulate (operatorii REGEXP și RLIKE) pe șiruri de caractere în codificări pe mai mulți octeți, cum ar fi pentru Unicode (UTF-8) [29] . Dacă sunt necesare astfel de operațiuni, trebuie să comutați la codificări pe un singur octet, de exemplu, Russian Win-1251 sau KOI-8 .

Note

  1. Modificări în MySQL 8.0.30 (2022-07-26, Disponibilitate generală) - 2022.
  2. Proiectul mysql Open Source pe Open Hub: Pagina de limbi  (engleză) - 2006.
  3. Proiectul mysql Open Source pe Open Hub: Pagina de limbi - 2006.
  4. 1 2 3 4 5 Platforme acceptate: Baza de  date MySQL
  5. 1 2 3 4 Platforme acceptate: Baza de date MySQL
  6. https://github.com/mysql/mysql-server/blob/mysql-8.0.3/COPYING
  7. https://www.mysql.com/about/legal/licensing/oem/
  8. http://dev.mysql.com/doc/refman/5.7/en/what-is-mysql.html Arhivat la 14 iulie 2017 la Wayback Machine 1.3.1. Ce este MySQL? Manual de referință MySQL 5.7.
  9. MySQL :: Observații de Kaj Arnö @Sun Arhivat 22 martie 2012.  (Engleză)
  10. Oracle to Buy Sun (link nu este disponibil) . Consultat la 24 aprilie 2013. Arhivat din original pe 22 aprilie 2009. 
  11. Oracle Completes Sun Acquisition Arhivat 27 ianuarie 2012 la Wayback Machine 
  12. MySQL. Ghid de administrare = MySQL. Ghidul Administratorului. - M . : Editura Williams , 2005. - S.  624 . — ISBN 5-8459-0805-1 .
  13. [ Istoria MySQL  ] . Preluat la 25 martie 2008. Arhivat din original la 31 august 2009. Istoria  MySQL _
  14. Excepție de licență FOSS . Preluat la 6 mai 2016. Arhivat din original la 15 mai 2016.
  15. MySQL :: MySQL 8.0 Reference Manual :: 28 Connectors and API-uri . dev.mysql.com. Consultat la 15 aprilie 2019. Arhivat din original pe 5 aprilie 2019.
  16. B.3. Modificări în Versiunea 3.23.x (Suportul ciclului de viață încheiat) (link mort) . Oracol. Preluat la 24 august 2010. Arhivat din original la 4 aprilie 2013.  
  17. B.2. Modificări în Versiunea 4.0.x (Suportul ciclului de viață încheiat) (link mort) . Oracol. Preluat la 24 august 2010. Arhivat din original la 4 aprilie 2013. 
  18. B.1. Modificări în Versiunea 4.1.x (Suportul ciclului de viață încheiat) (link mort) . Oracol. Preluat la 24 august 2010. Arhivat din original la 4 aprilie 2013. 
  19. C.1. Modificări în Versiunea 5.0.x (Suportul ciclului de viață încheiat) (link mort) . Oracol. Preluat la 24 august 2010. Arhivat din original la 4 aprilie 2013. 
  20. C.1. Modificări în versiunea 5.1.x (producție) (link descendent) . Oracol. Preluat la 24 august 2010. Arhivat din original la 4 aprilie 2013. 
  21. C.1. Modificări în versiunea 5.5.x (producție) (link descendent) . Oracol. Preluat la 24 august 2010. Arhivat din original la 4 aprilie 2013. 
  22. C.1. Modificări în versiunea 5.6.x (dezvoltare) (link indisponibil) . Oracol. Preluat la 24 august 2010. Arhivat din original la 4 aprilie 2013. 
  23. [Modificări în MySQL 5.6.50 (2020-10-19, Disponibilitate generală) MySQL 5.6.50 anunț de lansare din 19.10.2020]
  24. 1 2 Anunț de lansare MySQL 5.7.32 din 19.10.2020 . Preluat la 16 ianuarie 2021. Arhivat din original la 28 februarie 2021.
  25. Ce este nou în MySQL 5.1 (downlink) . Data accesului: 13 august 2009. Arhivat din original la 28 iunie 2009. 
  26. Prezentare generală a inovațiilor din MySQL 5.1 în limba rusă . Consultat la 22 decembrie 2008. Arhivat din original pe 26 decembrie 2008.
  27. Prezentare generală a funcțiilor de stocare Maria pe opennet.ru . Data accesului: 7 ianuarie 2009. Arhivat din original la 9 februarie 2009.
  28. Anunț de lansare MySQL 8.0.22 din 19.10.2022 . Preluat la 16 ianuarie 2021. Arhivat din original la 26 februarie 2021.
  29. „Operatorii REGEXP și RLIKE lucrează în funcție de octeți, deci nu sunt siguri pe mai mulți octeți și pot produce rezultate neașteptate cu seturi de caractere pe mai mulți octeți.” . Data accesului: 30 iulie 2014. Arhivat din original la 29 iulie 2014.

Literatură

  • V. Vaswani. MySQL: Utilizare și Administrare = Utilizarea și Administrarea bazei de date MySQL. - M . : „Piter” , 2011. - 368 p. - ISBN 978-5-459-00264-5 .
  • Steve Swaring, Tim Converse, Joyce Park. PHP și MySQL. The Programmer's Bible Ediția a 2-a = PHP 6 și MySQL 6 Bible. - M . : „Dialectica” , 2010. - 912 p. - ISBN 978-5-8459-1640-2 .
  • Robert Sheldon, Geoffrey Moyet. MySQL 5: curs de bază = Începerea MySQL. - M . : „Dialectica” , 2007. - 880 p. - ISBN 978-5-8459-1167-4 .
  • Kuznetsov Maxim, Simdyanov Igor. MySQL prin exemplu. - Sankt Petersburg. : „BHV-Petersburg” , 2008. - S. 952. - ISBN 978-5-9775-0066-1 .
  • Paul Dubois. MySQL, ediția a 3-a = MySQL, 3ed. - M . : „Williams” , 2006. - 1168 p. — ISBN 5-8459-1119-2 .
  • Kuznetsov Maxim, Simdyanov Igor. MySQL 5. Original. - Sankt Petersburg. : „BHV-Petersburg” , 2006. - S. 1024. - ISBN 5-94157-928-4 .
  • Kuznetsov Maxim, Simdyanov Igor. Tutorial MySQL 5. - Sankt Petersburg. : „BHV-Petersburg” , 2006. - S. 560. - ISBN 5-94157-754-0 .

Link -uri