MySQL

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 14 september 2022; verifiering kräver 1 redigering .
MySQL
Sorts relationell DBMS , programvara med öppen källkod och servermjukvara
Utvecklaren MySQL AB , Sun Microsystems och Oracle
Skrivet i C++ [2] och C [3]
Operativ system Linux [4] , Microsoft Windows [4] , macOS [4] , FreeBSD [4] , Solaris [4] och Unix-liknande operativsystem
Första upplagan 1995
Hårdvaruplattform x86_64 [5] , IA-32 [5] , A64 [d] [5] och SPARC [5]
senaste versionen
Läsbara filformat MySQL-tabelldefinitionsformat [d]
Genererade filformat MySQL-tabelldefinitionsformat [d]
Licens GNU GPL 2 [6] och proprietär [7]
Hemsida mysql.com
 Mediafiler på Wikimedia Commons

MySQL ( IPA: [maɪ ˌɛskjuːˈɛl] ) är ett gratis hanteringssystem för relationsdatabas [8] . MySQL är utvecklat och stöds av Oracle Corporation , som förvärvat rättigheterna till varumärket tillsammans med det förvärvade Sun Microsystems , som tidigare förvärvat det svenska företaget MySQL AB . Produkten distribueras både under GNU General Public License och under sin egen kommersiella licens. Dessutom skapar utvecklare funktionalitet för licensierade användare. Det var tack vare denna ordning som replikeringsmekanismen dök upp i nästan de tidigaste versionerna .

MySQL är lösningen för små och medelstora applikationer. Ingår i WAMP , AppServ , LAMP - servrar och i portabla sammansättningar av Denver , XAMPP , VertrigoServ-servrar . MySQL används vanligtvis som en server som nås av lokala eller fjärrklienter, men distributionen inkluderar ett internt serverbibliotek som låter dig inkludera MySQL i fristående program.

Flexibiliteten i MySQL DBMS stöds av ett stort antal tabelltyper: användare kan välja mellan MyISAM- tabeller som stöder fulltextsökning och InnoDB- tabeller som stöder transaktioner på nivån för enskilda poster. Dessutom kommer MySQL med en speciell EXEMPEL-tabelltyp som visar hur man skapar nya typer av tabeller. Tack vare sin öppna arkitektur och GPL-licensiering läggs ständigt nya typer av tabeller till MySQL-databasen.

Den 26 februari 2008 förvärvade Sun Microsystems MySQL AB för 1 miljard dollar [9] , den 27 januari 2010 förvärvade Oracle Sun Microsystems för 7,4 miljarder dollar [10] och lade till MySQL till sin DBMS- linje [11] .

MySQL - utvecklargemenskapen har skapat olika delar av koden som DrizzlePercona Server och MariaDB . Alla dessa gafflar fanns redan vid tidpunkten för Suns övertagande av Oracle.

Ursprunget till MySQL

MySQL uppstod som ett försök att tillämpa mSQL på företagets egen utveckling: tabeller för vilka ISAM användes  - rutiner på låg nivå. Som ett resultat utvecklades ett nytt SQL -gränssnitt, men API:et ärvdes från mSQL. Var namnet "MySQL" kommer ifrån är inte säkert känt. Utvecklarna ger två alternativ: antingen för att nästan all utveckling av företaget började med prefixet "My ..." (från  engelska  -  "min ..."), eller för att hedra dottern till Myu ( fin. My ) en av utvecklarna av systemet Mikael Widenius [12] [13] .

MySQL delfinlogotypen bär namnet " Sakila ". Det valdes från en stor lista med användarföreslagna "delfinnamn". Namnet " Sakila " skickades in av Open Source - utvecklaren Ambrose Twebaze .

Licensiering

MySQL har dubbla licenser. MySQL kan distribueras under licensvillkor. Men enligt villkoren för GPL, om något program använder MySQL-biblioteken (eller inkluderar annan GPL-kod), måste det också distribueras under GPL-licensen. Detta kan strida mot planerna för utvecklare som inte vill öppna sina program med öppen källkod. För sådana fall tillhandahålls en kommersiell licens, som också ger högkvalitativt servicestöd. För fri programvara tillhandahåller Oracle ett separat undantag från regeln som uttryckligen tillåter att MySQL används och omdistribueras med programvara som är licensierad enligt en Oracle-specificerad lista. [fjorton]

Plattformar

MySQL har porterats till ett stort antal plattformar: 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 och Windows 10 . Det finns också en MySQL-port till OpenVMS . På den officiella webbplatsen för DBMS tillhandahålls inte bara källkoder för gratis nedladdning, utan också färdiga MySQL DBMS - körbara moduler kompilerade och optimerade för specifika operativsystem .

Programmeringsspråk

MySQL har API :er [15] och kontakter för Delphi , C , C++ , Eiffel , Java , Lisp , Perl , PHP , Python , Ruby , Smalltalk , Component Pascal , Tcl och Lua , bibliotek för .NET- plattformsspråk och ger även support för för ODBC med MyODBC ODBC-drivrutinen .

MyODBC är en ODBC (2.50) nivå 0-drivrutin (med vissa nivå 1- och 2-funktioner) för att ansluta en ODBC-kompatibel applikation till MySQL. MyODBC körs på alla Microsoft Windows -system och på de flesta Unix- plattformar .

Utgivningshistorik

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

MySQL 4.0

Även om version 4.0 är föråldrad har den fortfarande betydande distribution. . Huvuddragen i denna version:

MySQL 4.1

Den rekommenderade versionen för 2005 är MySQL 4.1, släppt 27 oktober 2004 . Den innehåller följande innovationer:

MySQL 5.0

MySQL 5.0 släpptes den 24 oktober 2005 och är en version med avsevärt förbättrad funktionalitet som sätter MySQL i nivå med kommersiella DBMS . Om MySQL tidigare anklagades för otillräckligt stöd för SQL- standarden , så dök upp med tillkomsten av den femte versionen av denna populära databas nästan komplett stöd för SQL-standarden. MySQL 5.0 innehåller följande innovationer:

MySQL 5.1

MySQL 5.1 fortsätter vägen till SQL:2003 -standarden . MySQL 5.1 innehåller följande innovationer [25] [26] .

Maria tabelltyp

Maria (sedan version 5.2.x - Aria) är en utökad version av MyISAM- förvaret , med tillägg av sätt att upprätthålla dataintegritet efter en krasch.

De viktigaste fördelarna med Maria [27] :

  • I händelse av en krasch rullas resultaten av den aktuella operationen tillbaka eller återgår till läget före kommandot LOCK TABLES. Implementering genom loggning.
  • Möjlighet att återställa tillstånd var som helst i aktivitetsloggen, inklusive stöd för CREATE/DROP/RENAME/TRUNCATE. Kan användas för att skapa inkrementella säkerhetskopior genom att periodiskt kopiera aktivitetsloggen.
  • Stöd för alla MyISAM-kolumnformat, utökat med ett nytt "rader-i-block"-format som använder ett paginerat sätt att lagra data, där data i kolumner kan cachelagras.
  • I framtiden kommer två lägen att implementeras: transaktionella och utan reflektion i transaktionsloggen, för icke-kritiska data.
  • Datasidans storlek är 8 KB (i MyISAM 1 KB), vilket gör att du kan uppnå bättre prestanda för index på fält med fast storlek, men långsammare vid indexering av nycklar med variabel längd.

MySQL 5.5

MySQL 5.5-grenen bygger på den outgivna MySQL 5.4-serien och innehåller ett antal betydande skalbarhets- och prestandaförbättringar, inklusive:

  • Använder standard InnoDB-motorn.
  • Stöd för en semisynkron replikeringsmekanism baserad på patchar till InnoDB från Google.
  • Förbättring av datapartitioneringsfunktioner. Utökad syntax för att dela upp stora tabeller i flera delar som finns i filsystem (partitionering). Lade till RANGE, LIST operationer och "partition pruning" optimeringsmetod.
  • Ny optimeringsmekanism för kapslade frågor och JOIN-operationer.
  • Det interna blockeringssystemet har designats om.
  • Integrerade Google-patchar med InnoDB-optimering på processorer med ett stort antal kärnor.

MySQL 6.0

MySQL 6.0 har frysts i alfatestning. Inledningsvis beslutades det att skapa version 5.2, snart döptes denna version om till 6.0. Men senare försvann MySQL 6.0-informationen från webbplatsen, och utvecklarna fokuserade på version 5.5 och nästa version 5.6.

En av de viktigaste innovationerna i version 6.0 var den nya bordstypen Falcon , utvecklad som en potentiell ersättning för InnoDB av Innobase , förvärvat av Oracle . I samband med förvärvet av Sun Microsystems av samma Oracle 2010 är Falcons öde fortfarande ifrågasatt.

MySQL 5.7

Den första versionen av MySQL 5.7.1-grenen tillkännagavs den 23 april 2013. MySQL 5.7.8 är anpassad för Debian 8 och Ubuntu 15.04. Den senaste utgåvan är 5.7.32 daterad 2020-10-19. [24]

MySQL 8.0

Version 8.0.0 släpptes 2016-12-09, men version 8.0.11, släppt 2018-04-19, var officiellt användbar över hela världen. Den senaste versionen är 8.0.22 (release daterad 2020-10-19) [28]

Specifikationer

Maximala tabellstorlekar

Den maximala storleken på tabeller i MySQL 3.22 är upp till 4 gigabyte, i efterföljande versioner finns inga begränsningar.

Storleken på ett bord begränsas av dess typ. I allmänhet är MyISAM- typen begränsad av filstorleksgränsen för operativsystemets filsystem . Till exempel, på NTFS kan denna storlek teoretiskt vara upp till 32 exabyte . När det gäller InnoDB kan en tabell lagras i flera filer som representerar ett enda tabellutrymme . Storleken på den senare kan nå 64 terabyte .

Till skillnad från MyISAM har InnoDB en betydande gräns för antalet kolumner som kan läggas till i en enda tabell. Standardminnets sidstorlek är 16 kilobyte, varav 8123 byte är reserverade för data. Storleken på pekaren till dynamiska fält är 20 byte. Om du använder det dynamiska radformatet ( ROW_FORMAT=DYNAMIC), kan en tabell innehålla maximalt 409 kolumner av typen blobeller text.

Lokalisering

Från och med version 4.1 har ett nytt system med kodningar och sammanställningar implementerats i MySQL DBMS . När du använder Windows-1251-kodningen, innan du kör SQL-satser, måste du konfigurera anslutningskodningen med hjälp av operatorerna:

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

Dessa tre påståenden är likvärdiga med att anropa ett enda påstående:

SETNAMN ' cp1251 '

Variabeln character_set_clientställer in kodningen av data som skickas från klienten, variabeln character_set_resultsställer in kodningen av data som skickas till klienten, variabeln character_set_connectionställer in kodningen till vilken informationen som mottas från klienten konverteras innan begäran exekveras på servern.

När du använder Unicode UTF-8 ser detta uttalande ut så här:

SET NAME 'utf8mb4'

ISO 8859-5- kodning stöds inte.

Problemet med Unicode

MySQL tillåter inte korrekt användning av reguljära uttryck (REGEXP- och RLIKE-operatorer) på strängar i multibyte-kodningar, såsom för Unicode (UTF-8) [29] . Om sådana operationer är nödvändiga måste man byta till enkelbyte-kodningar, till exempel ryska Win-1251 eller KOI-8 .

Anteckningar

  1. Ändringar i MySQL 8.0.30 (2022-07-26, allmän tillgänglighet) - 2022.
  2. Mysql Open Source Project på Open Hub: Languages  ​​(engelska) - 2006.
  3. Mysql Open Source-projektet på Open Hub: Languages-sidan - 2006.
  4. 1 2 3 4 5 Plattformar som stöds: MySQL-  databas
  5. 1 2 3 4 Plattformar som stöds: MySQL-databas
  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 Arkiverad 14 juli 2017 på Wayback Machine 1.3.1. Vad är MySQL? MySQL 5.7 Referensmanual.
  9. MySQL :: Observationer av Kaj Arnö @Sun Arkiverad 22 mars 2012.  (Engelsk)
  10. Oracle to Buy Sun (länk ej tillgänglig) . Hämtad 24 april 2013. Arkiverad från originalet 22 april 2009. 
  11. Oracle slutför Sun Acquisition Arkiverad 27 januari 2012 på Wayback Machine 
  12. MySQL. Admin Guide = MySQL. Administratörsguide. - M . : Williams Publishing House , 2005. - S.  624 . — ISBN 5-8459-0805-1 .
  13. [ Historia om MySQL  ] . Hämtad 25 mars 2008. Arkiverad från originalet 31 augusti 2009. MySQL historia  _
  14. Undantag för FOSS-licens . Hämtad 6 maj 2016. Arkiverad från originalet 15 maj 2016.
  15. MySQL :: MySQL 8.0 Referensmanual :: 28 anslutningar och API:er . dev.mysql.com. Hämtad 15 april 2019. Arkiverad från originalet 5 april 2019.
  16. B.3. Ändringar i version 3.23.x (Lifecycle Support avslutad) (död länk) . Orakel. Hämtad 24 augusti 2010. Arkiverad från originalet 4 april 2013.  
  17. B.2. Ändringar i version 4.0.x (livscykelsupport avslutad) (död länk) . Orakel. Hämtad 24 augusti 2010. Arkiverad från originalet 4 april 2013. 
  18. B.1. Ändringar i version 4.1.x (livscykelsupport avslutad) (död länk) . Orakel. Hämtad 24 augusti 2010. Arkiverad från originalet 4 april 2013. 
  19. C.1. Ändringar i version 5.0.x (Lifecycle Support Ended) (död länk) . Orakel. Hämtad 24 augusti 2010. Arkiverad från originalet 4 april 2013. 
  20. C.1. Ändringar i version 5.1.x (Produktion) (nedlänk) . Orakel. Hämtad 24 augusti 2010. Arkiverad från originalet 4 april 2013. 
  21. C.1. Ändringar i version 5.5.x (produktion) (nedlänk) . Orakel. Hämtad 24 augusti 2010. Arkiverad från originalet 4 april 2013. 
  22. C.1. Ändringar i version 5.6.x (Utveckling) (inte tillgänglig länk) . Orakel. Hämtad 24 augusti 2010. Arkiverad från originalet 4 april 2013. 
  23. [Ändringar i MySQL 5.6.50 (2020-10-19, allmän tillgänglighet) Utgivningsmeddelande för MySQL 5.6.50 daterat 2020-10-19]
  24. 1 2 MySQL 5.7.32 releasemeddelande daterat 10/19/2020 . Hämtad 16 januari 2021. Arkiverad från originalet 28 februari 2021.
  25. Vad är nytt i MySQL 5.1 (nedlänk) . Datum för åtkomst: 13 augusti 2009. Arkiverad från originalet 28 juni 2009. 
  26. Översikt över innovationer i MySQL 5.1 på ryska . Hämtad 22 december 2008. Arkiverad från originalet 26 december 2008.
  27. Översikt över Maria-lagringsfunktioner på opennet.ru . Datum för åtkomst: 7 januari 2009. Arkiverad från originalet den 9 februari 2009.
  28. Utgivningsmeddelande för MySQL 8.0.22 daterat 2022-10-19 . Hämtad 16 januari 2021. Arkiverad från originalet 26 februari 2021.
  29. "REGEXP- och RLIKE-operatorerna fungerar på ett byte-mässigt sätt, så de är inte multi-byte-säkra och kan ge oväntade resultat med multi-byte teckenuppsättningar." . Datum för åtkomst: 30 juli 2014. Arkiverad från originalet den 29 juli 2014.

Litteratur

  • V. Vaswani. MySQL: Användning och administration = MySQL Databas Usage & Administration. - M . : "Piter" , 2011. - 368 sid. - ISBN 978-5-459-00264-5 .
  • Steve Swaring, Tim Converse, Joyce Park. PHP och MySQL. The Programmer's Bible 2nd Edition = PHP 6 och MySQL 6 Bible. - M . : "Dialektik" , 2010. - 912 sid. - ISBN 978-5-8459-1640-2 .
  • Robert Sheldon, Geoffrey Moyet. MySQL 5: grundkurs = Början av MySQL. - M . : "Dialektik" , 2007. - 880 sid. - ISBN 978-5-8459-1167-4 .
  • Kuznetsov Maxim, Simdyanov Igor. MySQL genom exempel. - St Petersburg. : "BHV-Petersburg" , 2008. - S. 952. - ISBN 978-5-9775-0066-1 .
  • Paul Dubois. MySQL, 3:e upplagan = MySQL, 3ed. - M . : "Williams" , 2006. - 1168 sid. — ISBN 5-8459-1119-2 .
  • Kuznetsov Maxim, Simdyanov Igor. MySQL 5. Original. - St Petersburg. : "BHV-Petersburg" , 2006. - S. 1024. - ISBN 5-94157-928-4 .
  • Kuznetsov Maxim, Simdyanov Igor. Handledning MySQL 5. - St. Petersburg. : "BHV-Petersburg" , 2006. - S. 560. - ISBN 5-94157-754-0 .

Länkar