MySQL

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 14. september 2022; verifikation kræver 1 redigering .
MySQL
Type relationel DBMS , open source-software og serversoftware
Udvikler MySQL AB , Sun Microsystems og Oracle
Skrevet i C++ [2] og C [3]
Operativ system Linux [4] , Microsoft Windows [4] , macOS [4] , FreeBSD [4] , Solaris [4] og Unix-lignende operativsystemer
Første udgave 1995
Hardware platform x86_64 [5] , IA-32 [5] , A64 [d] [5] og SPARC [5]
nyeste version
Læsbare filformater MySQL-tabeldefinitionsformat [d]
Genererede filformater MySQL-tabeldefinitionsformat [d]
Licens GNU GPL 2 [6] og proprietær [7]
Internet side mysql.com
 Mediefiler på Wikimedia Commons

MySQL ( IPA: [maɪ ˌɛskjuːˈɛl] ) er et gratis relationsdatabasestyringssystem [8] . MySQL er udviklet og understøttet af Oracle Corporation , som erhvervede rettighederne til varemærket sammen med det opkøbte Sun Microsystems , som tidligere havde erhvervet det svenske firma MySQL AB . Produktet distribueres både under GNU General Public License og under dets egen kommercielle licens. Derudover skaber udviklere funktionalitet til licenserede brugere. Det var takket være denne rækkefølge, at replikeringsmekanismen dukkede op i næsten de tidligste versioner .

MySQL er løsningen til små og mellemstore applikationer. Inkluderet i WAMP , AppServ , LAMP - servere og i bærbare samlinger af Denver , XAMPP , VertrigoServ-servere . MySQL bruges typisk som en server, der tilgås af lokale eller eksterne klienter, men distributionen inkluderer et internt serverbibliotek, der giver dig mulighed for at inkludere MySQL i selvstændige programmer.

Fleksibiliteten i MySQL DBMS understøttes af et stort antal tabeltyper: Brugere kan vælge mellem MyISAM -tabeller , der understøtter fuldtekstsøgning, og InnoDB -tabeller , der understøtter transaktioner på niveau med individuelle poster. Desuden kommer MySQL med en speciel EKSEMPEL tabeltype, der demonstrerer, hvordan man opretter nye typer tabeller. Takket være dens åbne arkitektur og GPL-licensering tilføjes der konstant nye typer tabeller til MySQL-databasen.

Den 26. februar 2008 købte Sun Microsystems MySQL AB for 1 milliard dollar [9] , den 27. januar 2010 købte Oracle Sun Microsystems for 7,4 milliarder dollar [10] og tilføjede MySQL til sin DBMS lineup [11] .

MySQL-udviklerfællesskabet har skabt forskellige af koden, såsom DrizzleOurDelta Percona Server og MariaDB . Alle disse gafler eksisterede allerede på tidspunktet for Suns overtagelse af Oracle.

Oprindelsen af ​​MySQL

MySQL opstod som et forsøg på at anvende mSQL til virksomhedens egne udviklinger: tabeller, som ISAM blev brugt til  - rutiner på lavt niveau. Som et resultat blev der udviklet en ny SQL -grænseflade, men API'et blev arvet fra mSQL. Hvor navnet "MySQL" kommer fra vides ikke med sikkerhed. Udviklerne giver to muligheder: enten fordi næsten alle udviklinger af virksomheden begyndte med præfikset "Min ..." (fra  engelsk  -  "min ..."), eller til ære for datteren til Myu ( fin. Min ) en af ​​udviklerne af systemet Mikael Widenius [12] [13] .

MySQL delfinlogoet bærer navnet " Sakila ". Det blev valgt fra en stor liste af brugerforeslåede "delfinnavne". Navnet " Sakila " blev indsendt af Open Source - udvikleren Ambrose Twebaze .

Licensering

MySQL er dobbeltlicenseret. MySQL kan distribueres under licensbetingelser. Men i henhold til betingelserne i GPL, hvis et program bruger MySQL-biblioteker (eller inkluderer anden GPL-kode), skal det også distribueres under GPL-licensen. Dette kan være i modstrid med planerne hos udviklere, der ikke ønsker at open source deres programmer. Til sådanne tilfælde leveres en kommerciel licens, som også giver service af høj kvalitet. For fri software giver Oracle en separat undtagelse til reglen, der udtrykkeligt tillader MySQL at blive brugt og videredistribueret med software, der er licenseret under en Oracle-specificeret liste. [fjorten]

Platforme

MySQL er blevet porteret til et stort antal platforme: AIX , BSDi , FreeBSD , HP-UX , Linux , macOS , NetBSD , OpenBSD , OS/2 Warp, SGI IRIX , Solaris , SunOS , SCO OpenServer , UnixWare , Tru654 , Windows 9 , Windows 98 , Windows NT , Windows 2000 , Windows XP , Windows Server 2003 , WinCE , Windows Vista , Windows 7 og Windows 10 . Der er også en MySQL-port til OpenVMS . På den officielle hjemmeside for DBMS leveres ikke kun kildekoder til gratis download, men også færdige MySQL DBMS eksekverbare moduler kompileret og optimeret til specifikke operativsystemer .

Programmeringssprog

MySQL har API'er [15] og stik til Delphi , C , C++ , Eiffel , Java , Lisp , Perl , PHP , Python , Ruby , Smalltalk , Component Pascal , Tcl og Lua , biblioteker til .NET platformsprog og yder også support til for ODBC ved hjælp af MyODBC ODBC-driveren .

MyODBC er en ODBC (2.50) niveau 0-driver (med nogle niveau 1- og 2-funktioner) til at forbinde en ODBC-kompatibel applikation til MySQL. MyODBC kører på alle Microsoft Windows -systemer og på de fleste Unix -platforme .

Udgivelseshistorik

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

MySQL 4.0

Selvom version 4.0 er forældet, har den stadig en betydelig distribution. . Hovedtræk ved denne version:

MySQL 4.1

Den anbefalede version for 2005 er MySQL 4.1, udgivet 27. oktober 2004 . Den indeholder følgende innovationer:

MySQL 5.0

Udgivet den 24. oktober 2005, MySQL 5.0 er en version med væsentligt forbedret funktionalitet, der sætter MySQL på niveau med kommercielle DBMS'er . Hvis MySQL tidligere blev anklaget for utilstrækkelig understøttelse af SQL- standarden , så med fremkomsten af ​​den femte version af denne populære database, dukkede næsten fuldstændig understøttelse af SQL-standarden op. MySQL 5.0 indeholder følgende innovationer:

MySQL 5.1

MySQL 5.1 fortsætter stien til SQL:2003- standarden . MySQL 5.1 indeholder følgende innovationer [25] [26] .

Maria tabeltype

Maria (siden version 5.2.x - Aria) er en udvidet version af MyISAM -lageret med tilføjelse af midler til at vedligeholde dataintegriteten efter et nedbrud.

De vigtigste fordele ved Maria [27] :

  • I tilfælde af et nedbrud rulles resultaterne af den aktuelle operation tilbage eller vender tilbage til tilstanden før kommandoen LOCK TABLES. Implementering gennem logningsoperationer.
  • Mulighed for at gendanne tilstand fra hvor som helst i aktivitetsloggen, inklusive understøttelse af CREATE/DROP/RENAME/TRUNCATE. Kan bruges til at oprette trinvise sikkerhedskopier ved periodisk at kopiere aktivitetsloggen.
  • Understøttelse af alle MyISAM kolonneformater, udvidet med et nyt "rows-in-block" format, der bruger en pagineret måde at lagre data på, hvor data i kolonner kan cachelagres.
  • I fremtiden vil to tilstande blive implementeret: transaktionel og uden refleksion i transaktionsloggen, for ikke-kritiske data.
  • Datasidestørrelsen er 8 KB (i MyISAM 1 KB), hvilket giver dig mulighed for at opnå bedre ydeevne for indekser på felter med fast størrelse, men langsommere i tilfælde af indeksering af nøgler med variabel længde.

MySQL 5.5

MySQL 5.5-grenen bygger på den ikke-udgivne MySQL 5.4-serie og indeholder en række væsentlige skalerbarhed og ydeevneforbedringer, herunder:

  • Brug af standard InnoDB-motoren.
  • Understøttelse af en semi-synkron replikeringsmekanisme baseret på patches til InnoDB fra Google.
  • Forbedring af datapartitioneringsfunktioner. Udvidet syntaks til opdeling af store tabeller i flere dele placeret i filsystemer (partitionering). Tilføjet RANGE, LIST operationer og "partition pruning" optimeringsmetode.
  • Ny optimeringsmekanisme til indlejrede forespørgsler og JOIN-operationer.
  • Det interne blokeringssystem er blevet redesignet.
  • Integrerede Google-patches med InnoDB-optimering på processorer med et stort antal kerner.

MySQL 6.0

MySQL 6.0 er blevet frosset i alfa-test. Oprindeligt blev det besluttet at oprette version 5.2, snart blev denne version omdøbt til 6.0. Men senere forsvandt MySQL 6.0-oplysningerne fra webstedet, og udviklerne fokuserede på version 5.5 og den næste version 5.6.

En af de vigtigste innovationer i version 6.0 var den nye Falcon bordtype, udviklet som en potentiel erstatning for InnoDB af Innobase , erhvervet af Oracle . I forbindelse med købet af Sun Microsystems af samme Oracle i 2010 , er Falcons skæbne stadig i tvivl.

MySQL 5.7

Den første version af MySQL 5.7.1-grenen blev annonceret den 23. april 2013. MySQL 5.7.8 er tilpasset til Debian 8 og Ubuntu 15.04. Den seneste udgivelse er 5.7.32 dateret 19/10/2020. [24]

MySQL 8.0

Version 8.0.0 blev udgivet den 09/12/2016, men version 8.0.11, udgivet den 04/19/2018, var officielt brugbar over hele verden. Den seneste version er 8.0.22 (udgivelse dateret 19/10/2020) [28]

Specifikationer

Maksimale tabelstørrelser

Den maksimale størrelse af tabeller i MySQL 3.22 er op til 4 gigabyte, i efterfølgende versioner er der ingen begrænsninger.

Størrelsen af ​​et bord er begrænset af dets type. Generelt er MyISAM -typen begrænset af filstørrelsesgrænsen for operativsystemets filsystem . For eksempel på NTFS kunne denne størrelse teoretisk set være op til 32 exabyte . I tilfælde af InnoDB kan en tabel gemmes i flere filer, der repræsenterer et enkelt tablespace . Størrelsen af ​​sidstnævnte kan nå op på 64 terabyte .

I modsætning til MyISAM har InnoDB en betydelig grænse for antallet af kolonner, der kan tilføjes til en enkelt tabel. Standard hukommelsessidestørrelse er 16 kilobytes, hvoraf 8123 bytes er reserveret til data. Størrelsen af ​​markøren til dynamiske felter er 20 bytes. I tilfælde af brug af det dynamiske rækkeformat ( ROW_FORMAT=DYNAMIC), kan en tabel således maksimalt indeholde 409 kolonner af typen blobeller text.

Lokalisering

Fra og med version 4.1 er et nyt system med indkodninger og sammenstillinger blevet implementeret i MySQL DBMS . Når du bruger Windows-1251-kodningen, før du udfører SQL-sætninger, skal du konfigurere forbindelseskodningen ved hjælp af operatorerne:

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

Disse tre udsagn svarer til at kalde et enkelt udsagn:

SÆTNAVNE ' cp1251 '

Variablen character_set_clientsætter kodningen af ​​de data, der sendes fra klienten, variablen character_set_resultssætter kodningen af ​​de data, der sendes til klienten, variablen character_set_connectionsætter den kodning, som informationen modtaget fra klienten konverteres til, før anmodningen udføres på serveren.

Når du bruger Unicode UTF-8, ser denne sætning sådan ud:

SÆT NAVNE 'utf8mb4'

ISO 8859-5- kodning understøttes ikke.

Problemet med Unicode

MySQL tillader ikke korrekt brug af regulære udtryk (REGEXP- og RLIKE-operatorer) på strenge i multibyte-kodninger, såsom for Unicode (UTF-8) [29] . Hvis sådanne operationer er nødvendige, skal man skifte til enkeltbyte-kodninger, for eksempel russisk Win-1251 eller KOI-8 .

Noter

  1. Ændringer i MySQL 8.0.30 (2022-07-26, generel tilgængelighed) - 2022.
  2. MySQL Open Source-projektet på Open Hub: Languages  ​​(engelsk) - 2006.
  3. MySQL Open Source-projektet på Open Hub: Languages-side - 2006.
  4. 1 2 3 4 5 Understøttede platforme: MySQL-  database
  5. 1 2 3 4 Understøttede platforme: MySQL-database
  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 Arkiveret 14. juli 2017 på Wayback Machine 1.3.1. Hvad er MySQL? MySQL 5.7 Referencemanual.
  9. MySQL :: Observationer af Kaj Arnö @Sun Arkiveret 22. marts 2012.  (Engelsk)
  10. Oracle to Buy Sun (link ikke tilgængeligt) . Hentet 24. april 2013. Arkiveret fra originalen 22. april 2009. 
  11. Oracle fuldfører Sun Acquisition Arkiveret 27. januar 2012 på Wayback Machine 
  12. MySQL. Admin Guide = MySQL. Administratorvejledning. - M . : Williams Publishing House , 2005. - S.  624 . — ISBN 5-8459-0805-1 .
  13. [ MySQL historie  ] . Hentet 25. marts 2008. Arkiveret fra originalen 31. august 2009. Historien  om MySQL
  14. FOSS-licensundtagelse . Hentet 6. maj 2016. Arkiveret fra originalen 15. maj 2016.
  15. MySQL :: MySQL 8.0 Reference Manual :: 28 Connectors og API'er . dev.mysql.com. Hentet 15. april 2019. Arkiveret fra originalen 5. april 2019.
  16. B.3. Ændringer i version 3.23.x (Lifecycle Support ended) (dødt link) . Oracle. Hentet 24. august 2010. Arkiveret fra originalen 4. april 2013.  
  17. B.2. Ændringer i Release 4.0.x (Lifecycle Support Ended) (dødt link) . Oracle. Hentet 24. august 2010. Arkiveret fra originalen 4. april 2013. 
  18. B.1. Ændringer i version 4.1.x (Lifecycle Support ended) (dødt link) . Oracle. Hentet 24. august 2010. Arkiveret fra originalen 4. april 2013. 
  19. C.1. Ændringer i version 5.0.x (Lifecycle Support ended) (dødt link) . Oracle. Hentet 24. august 2010. Arkiveret fra originalen 4. april 2013. 
  20. C.1. Ændringer i Release 5.1.x (Produktion) (downlink) . Oracle. Hentet 24. august 2010. Arkiveret fra originalen 4. april 2013. 
  21. C.1. Ændringer i Release 5.5.x (Produktion) (downlink) . Oracle. Hentet 24. august 2010. Arkiveret fra originalen 4. april 2013. 
  22. C.1. Ændringer i version 5.6.x (Udvikling) (utilgængeligt link) . Oracle. Hentet 24. august 2010. Arkiveret fra originalen 4. april 2013. 
  23. [Ændringer i MySQL 5.6.50 (2020-10-19, generel tilgængelighed) MySQL 5.6.50-udgivelsesmeddelelse dateret 19-10-2020]
  24. 1 2 MySQL 5.7.32 udgivelsesmeddelelse dateret 19/10/2020 . Hentet 16. januar 2021. Arkiveret fra originalen 28. februar 2021.
  25. Hvad er nyt i MySQL 5.1 (downlink) . Dato for adgang: 13. august 2009. Arkiveret fra originalen 28. juni 2009. 
  26. Oversigt over innovationer i MySQL 5.1 på russisk . Hentet 22. december 2008. Arkiveret fra originalen 26. december 2008.
  27. Oversigt over Maria-lagringsfunktioner på opennet.ru . Dato for adgang: 7. januar 2009. Arkiveret fra originalen 9. februar 2009.
  28. MySQL 8.0.22-udgivelsesmeddelelse dateret 19.10.2022 . Hentet 16. januar 2021. Arkiveret fra originalen 26. februar 2021.
  29. "REGEXP- og RLIKE-operatorerne arbejder på byte-mæssig måde, så de er ikke multi-byte sikre og kan producere uventede resultater med multi-byte tegnsæt." . Dato for adgang: 30. juli 2014. Arkiveret fra originalen 29. juli 2014.

Litteratur

  • V. Vaswani. MySQL: Usage and Administration = MySQL Database Usage & Administration. - M . : "Piter" , 2011. - 368 s. - ISBN 978-5-459-00264-5 .
  • Steve Swaring, Tim Converse, Joyce Park. PHP og MySQL. The Programmer's Bible 2nd Edition = PHP 6 og MySQL 6 Bible. - M . : "Dialektik" , 2010. - 912 s. - ISBN 978-5-8459-1640-2 .
  • Robert Sheldon, Geoffrey Moyet. MySQL 5: grundkursus = Begyndelse af MySQL. - M . : "Dialektik" , 2007. - 880 s. - ISBN 978-5-8459-1167-4 .
  • Kuznetsov Maxim, Simdyanov Igor. MySQL ved eksempel. - Sankt Petersborg. : "BHV-Petersburg" , 2008. - S. 952. - ISBN 978-5-9775-0066-1 .
  • Paul Dubois. MySQL, 3. udgave = MySQL, 3ed. - M . : "Williams" , 2006. - 1168 s. — ISBN 5-8459-1119-2 .
  • Kuznetsov Maxim, Simdyanov Igor. MySQL 5. Original. - Sankt Petersborg. : "BHV-Petersburg" , 2006. - S. 1024. - ISBN 5-94157-928-4 .
  • Kuznetsov Maxim, Simdyanov Igor. Tutorial MySQL 5. - St. Petersborg. : "BHV-Petersburg" , 2006. - S. 560. - ISBN 5-94157-754-0 .

Links