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 ( 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]
- Den første interne udgivelse af MySQL fandt sted den 23. maj 1995. .
- En version til Windows-systemer (Windows 95 og NT) blev udgivet den 8. januar 1998.
- Version 3.23: beta juni 2000, udgivelse januar 2001.
- Version 4.0: beta august 2002, udgivelse marts 2003.
- Version 4.1: beta juni 2004, udgivelse oktober 2004.
- Version 5.0: beta marts 2005, udgivelse oktober 2005.
- Version 5.1: udviklet siden november 2005, udgivet i november 2008.
- Version 5.4: April 2009 beta, er ikke blevet frigivet.
- Version 5.5: udgivelse i december 2010.
- Version 5.6: under udvikling (sidste udgivelse - 5.6.50 dateret 19/10/2020). [23]
- Version 5.7: under udvikling (sidste udgivelse - 5.7.32 dateret 19/10/2020). [24]
MySQL 4.0
Selvom version 4.0 er forældet, har den stadig en betydelig distribution. . Hovedtræk ved denne version:
- næsten komplet implementering af ANSI SQL-99 plus udvidelser;
- kompatibilitet på tværs af platforme;
- uafhængige tabeltyper ( MyISAM til hurtig læsning, InnoDB til transaktioner og referenceintegritet);
- transaktioner ;
- SSL- understøttelse ;
- forespørgselscache ;
- replikering : én masterserver pr. slave, mange slaver pr. master;
- fuldtekstindeksering og søgning ved hjælp af MyISAM-tabeltypen;
- indlejret database bibliotek;
- understøttelse af Unicode ( UTF-8 );
- InnoDB- tabeller for ACID-overholdelse ;
- en indlejret server, der giver dig mulighed for at inkludere MySQL i selvstændige applikationer.
MySQL 4.1
Den anbefalede version for 2005 er MySQL 4.1, udgivet 27. oktober 2004 . Den indeholder følgende innovationer:
- indlejrede forespørgsler og afledte tabeller.
- nyt kodnings- og sorteringssystem;
- hurtigere og mere fleksibel klient-server-protokol med understøttelse af forberedte forespørgsler, hvilket sikrer deres optimale udførelse;
- nyt installations- og opsætningsprogram til Microsoft Windows og Linux ;
- klient-server-forbindelser sikret via OpenSSL ;
- højt optimeret bibliotek, der kan bruges i tredjepartsprogrammer;
- fuld Unicode-understøttelse (UTF-8 og UCS2);
- standard GIS geodatatyper til lagring af geografisk information;
- forbedret fuldtekst søge- og hjælpesystem.
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] .
- Sharding er evnen til at opdele et stort bord i flere dele placeret på forskellige filsystemer baseret på en brugerdefineret funktion. Dette kan under visse forhold give en markant forøgelse af ydeevnen og derudover gør det det nemmere at skalere tabeller.
- Adfærden af en række sætninger er blevet ændret for at være mere kompatible med SQL2003-standarden.
- Rækkebaseret replikering , hvor kun information om faktisk ændrede tabelrækker vil blive skrevet til den binære log i stedet for den originale (og muligvis langsomme) forespørgselstekst . Rækkereplikering kan kun bruges til visse typer sql-forespørgsler, hvad angår MySQL-blandet replikering .
- Indbygget planlægger af periodisk lancerede job. I syntaks svarer tilføjelse af en opgave til at tilføje en trigger til en tabel, i ideologi svarer det til crontab .
- Et ekstra sæt funktioner til XML- behandling , en implementering af XPath- understøttelse .
- Nye fejlfindingsværktøjer og ydelsesanalyseværktøjer. Mulighederne for at administrere indholdet af logfiler er blevet udvidet, logfiler kan nu gemmes i general_log og slow_log tabellerne. Mysqlslap-værktøjet giver dig mulighed for at udføre belastningstest af databasen med en registrering af responstiden for hver anmodning.
- For at forenkle opgraderingsoperationen er mysql_upgrade-værktøjet blevet forberedt, som vil kontrollere alle eksisterende tabeller for kompatibilitet med den nye version og om nødvendigt foretage de passende justeringer.
- MySQL Cluster er nu udgivet som et selvstændigt produkt baseret på MySQL 5.1 og NDBCLUSTER-depotet.
- Væsentlige ændringer i driften af MySQL Cluster, som for eksempel muligheden for at gemme tabeldata på disk.
- Vendte tilbage til at bruge det indbyggede libmysqld-bibliotek, der manglede i MySQL 5.0.
- API til plugins, der giver dig mulighed for at indlæse tredjepartsmoduler, der udvider funktionaliteten (for eksempel fuldtekstsøgning) uden at genstarte serveren.
- Implementering af fuldtekstsøgeparseren som et plug-in.
- Ny tabeltype Maria (fejltolerant klon af MyISAM ).
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
- ↑ Ændringer i MySQL 8.0.30 (2022-07-26, generel tilgængelighed) - 2022.
- ↑ MySQL Open Source-projektet på Open Hub: Languages (engelsk) - 2006.
- ↑ MySQL Open Source-projektet på Open Hub: Languages-side - 2006.
- ↑ 1 2 3 4 5 Understøttede platforme: MySQL- database
- ↑ 1 2 3 4 Understøttede platforme: MySQL-database
- ↑ https://github.com/mysql/mysql-server/blob/mysql-8.0.3/COPYING
- ↑ https://www.mysql.com/about/legal/licensing/oem/
- ↑ 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.
- ↑ MySQL :: Observationer af Kaj Arnö @Sun Arkiveret 22. marts 2012. (Engelsk)
- ↑ Oracle to Buy Sun (link ikke tilgængeligt) . Hentet 24. april 2013. Arkiveret fra originalen 22. april 2009. (ubestemt)
- ↑ Oracle fuldfører Sun Acquisition Arkiveret 27. januar 2012 på Wayback Machine
- ↑ MySQL. Admin Guide = MySQL. Administratorvejledning. - M . : Williams Publishing House , 2005. - S. 624 . — ISBN 5-8459-0805-1 .
- ↑ [ MySQL historie ] . Hentet 25. marts 2008. Arkiveret fra originalen 31. august 2009. (ubestemt) Historien om MySQL
- ↑ FOSS-licensundtagelse . Hentet 6. maj 2016. Arkiveret fra originalen 15. maj 2016. (ubestemt)
- ↑ MySQL :: MySQL 8.0 Reference Manual :: 28 Connectors og API'er . dev.mysql.com. Hentet 15. april 2019. Arkiveret fra originalen 5. april 2019. (ubestemt)
- ↑ 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.
(ubestemt)
- ↑ 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. (ubestemt)
- ↑ 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. (ubestemt)
- ↑ 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. (ubestemt)
- ↑ C.1. Ændringer i Release 5.1.x (Produktion) (downlink) . Oracle. Hentet 24. august 2010. Arkiveret fra originalen 4. april 2013. (ubestemt)
- ↑ C.1. Ændringer i Release 5.5.x (Produktion) (downlink) . Oracle. Hentet 24. august 2010. Arkiveret fra originalen 4. april 2013. (ubestemt)
- ↑ C.1. Ændringer i version 5.6.x (Udvikling) (utilgængeligt link) . Oracle. Hentet 24. august 2010. Arkiveret fra originalen 4. april 2013. (ubestemt)
- ↑ [Ændringer i MySQL 5.6.50 (2020-10-19, generel tilgængelighed) MySQL 5.6.50-udgivelsesmeddelelse dateret 19-10-2020]
- ↑ 1 2 MySQL 5.7.32 udgivelsesmeddelelse dateret 19/10/2020 . Hentet 16. januar 2021. Arkiveret fra originalen 28. februar 2021. (ubestemt)
- ↑ Hvad er nyt i MySQL 5.1 (downlink) . Dato for adgang: 13. august 2009. Arkiveret fra originalen 28. juni 2009. (ubestemt)
- ↑ Oversigt over innovationer i MySQL 5.1 på russisk . Hentet 22. december 2008. Arkiveret fra originalen 26. december 2008. (ubestemt)
- ↑ Oversigt over Maria-lagringsfunktioner på opennet.ru . Dato for adgang: 7. januar 2009. Arkiveret fra originalen 9. februar 2009. (ubestemt)
- ↑ MySQL 8.0.22-udgivelsesmeddelelse dateret 19.10.2022 . Hentet 16. januar 2021. Arkiveret fra originalen 26. februar 2021. (ubestemt)
- ↑ "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. (ubestemt)
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
Sun Microsystems (overtaget af Oracle ) |
---|
Udstyr |
|
---|
Software |
|
---|
Data opbevaring |
|
---|
High Performance Computing |
|
---|
Forskning |
|
---|
Uddannelse |
|
---|
Fællesskab |
|
---|