MySQL

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 14. září 2022; ověření vyžaduje 1 úpravu .
MySQL
Typ relační DBMS , open source software a serverový software
Vývojář MySQL AB , Sun Microsystems a Oracle
Zapsáno v C++ [2] a C [3]
Operační systém Linux [4] , Microsoft Windows [4] , macOS [4] , FreeBSD [4] , Solaris [4] a operační systém podobný Unixu
První vydání 1995
Hardwarová platforma x86_64 [5] , IA-32 [5] , A64 [d] [5] a SPARC [5]
Nejnovější verze
Čitelné formáty souborů Formát definice tabulky MySQL [d]
Vygenerované formáty souborů Formát definice tabulky MySQL [d]
Licence GNU GPL 2 [6] a proprietární [7]
webová stránka mysql.com
 Mediální soubory na Wikimedia Commons

MySQL ( IPA: [maɪ ˌɛskjuːˈɛl] ) je bezplatný systém pro správu relačních databází [8] . MySQL je vyvíjen a podporován společností Oracle Corporation , která získala práva k ochranné známce spolu s akvizicí Sun Microsystems , která dříve získala švédskou společnost MySQL AB . Produkt je distribuován jak pod GNU General Public License , tak pod vlastní komerční licencí. Vývojáři navíc vytvářejí funkce pro licencované uživatele. Právě díky této objednávce se replikační mechanismus objevil v téměř nejstarších verzích .

MySQL je řešením pro malé a střední aplikace. Zahrnuto v serverech WAMP , AppServ , LAMP a v přenosných sestavách serverů Denver , XAMPP , VertrigoServ . MySQL se obvykle používá jako server, ke kterému přistupují místní nebo vzdálení klienti, ale distribuce obsahuje interní serverovou knihovnu, která umožňuje zahrnout MySQL do samostatných programů.

Flexibilitu MySQL DBMS podporuje velké množství typů tabulek: uživatelé si mohou vybrat mezi tabulkami MyISAM , které podporují fulltextové vyhledávání, a tabulkami InnoDB , které podporují transakce na úrovni jednotlivých záznamů. MySQL navíc přichází se speciálním typem tabulky EXAMPLE, který ukazuje, jak vytvářet nové typy tabulek. Díky otevřené architektuře a GPL licencování jsou do databáze MySQL neustále přidávány nové typy tabulek.

26. února 2008 Sun Microsystems koupil MySQL AB za 1 miliardu $ [9] , 27. ledna 2010 Oracle získal Sun Microsystems za 7,4 miliardy $ [10] a přidal MySQL do své řady DBMS [11] .

Komunita vývojářů MySQL vytvořila různé forky kódu, jako jsou DrizzlePercona Server a MariaDB . Všechny tyto forky již existovaly v době převzetí společnosti Sun společností Oracle.

Původ MySQL

MySQL vzniklo jako pokus aplikovat mSQL na vlastní vývoj společnosti: tabulky, pro které byl použit ISAM  - nízkoúrovňové rutiny. V důsledku toho bylo vyvinuto nové rozhraní SQL , ale API bylo zděděno z mSQL. Odkud název "MySQL" pochází, není s jistotou známo. Vývojáři dávají dvě možnosti: buď proto, že téměř veškerý vývoj společnosti začal předponou „My ...“ (z  angličtiny  -  „my ...“), nebo na počest dcery Myu ( fin. My ) jeden z vývojářů systému Mikael Widenius [12] [13] .

Logo delfína MySQL nese jméno „ Sakila “. Byl vybrán z velkého seznamu „delfínových jmen“ navržených uživateli. Jméno " Sakila " bylo předloženo vývojářem Open Source Ambrose Twebaze .

Licence

MySQL má duální licenci. MySQL může být distribuován za licenčních podmínek. Podle podmínek GPL však platí, že pokud jakýkoli program používá knihovny MySQL (nebo obsahuje jiný kód GPL), musí být také distribuován pod licencí GPL. To může být v rozporu s plány vývojářů, kteří nechtějí své programy otevírat. Pro takové případy je poskytována komerční licence, která zároveň poskytuje kvalitní servisní podporu. Pro svobodný software poskytuje Oracle samostatnou výjimku z pravidla, která výslovně povoluje používání a redistribuci MySQL se softwarem licencovaným podle seznamu specifikovaného Oracle. [čtrnáct]

Platformy

MySQL bylo portováno na velké množství platforem: 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 a Windows 10 . K dispozici je také MySQL port pro OpenVMS . Na oficiálních stránkách DBMS jsou k dispozici nejen zdrojové kódy ke stažení zdarma, ale také hotové spustitelné moduly MySQL DBMS zkompilované a optimalizované pro konkrétní operační systémy .

Programovací jazyky

MySQL má API [15] a konektory pro Delphi , C , C++ , Eiffel , Java , Lisp , Perl , PHP , Python , Ruby , Smalltalk , Component Pascal , Tcl a Lua , knihovny pro jazyky platformy .NET a také poskytuje podporu pro pro ODBC pomocí ovladače MyODBC ODBC .

MyODBC je ovladač ODBC (2.50) úrovně 0 (s některými funkcemi úrovně 1 a 2) pro připojení aplikace kompatibilní s ODBC k MySQL. MyODBC běží na všech systémech Microsoft Windows a na většině unixových platforem .

Historie vydání

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

MySQL 4.0

Přestože je verze 4.0 zastaralá, stále má významnou distribuci. . Hlavní vlastnosti této verze:

MySQL 4.1

Doporučená verze pro rok 2005 je MySQL 4.1, vydaná 27. října 2004 . Obsahuje následující inovace:

MySQL 5.0

MySQL 5.0, vydané 24. října 2005, je verze s výrazně vylepšenou funkčností, která staví MySQL na úroveň komerčních DBMS . Pokud bylo dříve MySQL obviňováno z nedostatečné podpory standardu SQL , pak s příchodem páté verze této populární databáze se objevila téměř úplná podpora standardu SQL. MySQL 5.0 obsahuje následující inovace:

MySQL 5.1

MySQL 5.1 pokračuje v cestě ke standardu SQL:2003 . MySQL 5.1 obsahuje následující novinky [25] [26] .

Typ tabulky Maria

Maria (od verze 5.2.x - Aria) je rozšířená verze úložiště MyISAM s přidáním prostředků pro zachování integrity dat po havárii.

Hlavní výhody Maria [27] :

  • V případě havárie se výsledky aktuální operace vrátí zpět nebo se vrátí do stavu před příkazem LOCK TABLES. Implementace prostřednictvím protokolovacích operací.
  • Schopnost obnovit stav odkudkoli v protokolu aktivit, včetně podpory pro CREATE/DROP/RENAME/ZKRÁTIT. Lze použít k vytváření přírůstkových záloh pravidelným kopírováním protokolu činnosti.
  • Podpora všech formátů sloupců MyISAM, rozšířená o nový formát „řádky v bloku“, který využívá stránkovaný způsob ukládání dat, ve kterém lze data ve sloupcích ukládat do mezipaměti.
  • V budoucnu budou implementovány dva režimy: transakční a bez odrazu v protokolu transakcí pro nekritická data.
  • Velikost datové stránky je 8 KB (v MyISAM 1 KB), což umožňuje dosáhnout lepšího výkonu pro indexy na polích s pevnou velikostí, ale pomalejší v případě indexování klíčů s proměnnou délkou.

MySQL 5.5

Větev MySQL 5.5 staví na dosud nevydané řadě MySQL 5.4 a obsahuje řadu významných vylepšení škálovatelnosti a výkonu, včetně:

  • Použití výchozího enginu InnoDB.
  • Podpora pro semisynchronní replikační mechanismus založený na záplatách InnoDB od Google.
  • Vylepšení funkcí dělení dat. Rozšířená syntaxe pro rozdělení velkých tabulek na několik částí umístěných v souborových systémech (partitioning). Přidány operace RANGE, LIST a optimalizační metoda "prořezávání oddílu".
  • Nový optimalizační mechanismus pro vnořené dotazy a operace JOIN.
  • Vnitřní blokovací systém byl přepracován.
  • Integrované záplaty Google s optimalizací InnoDB na procesorech s velkým počtem jader.

MySQL 6.0

MySQL 6.0 bylo zmrazeno v alfa testování. Zpočátku bylo rozhodnuto vytvořit verzi 5.2, brzy byla tato verze přejmenována na 6.0. Později však informace o MySQL 6.0 ze stránek zmizely a vývojáři se zaměřili na verzi 5.5 a další verzi 5.6.

Jednou z hlavních inovací verze 6.0 byl nový typ tabulky Falcon , vyvinutý jako potenciální náhrada za InnoDB společností Innobase , získanou společností Oracle . V souvislosti s akvizicí Sun Microsystems stejným Oraclem v roce 2010 zůstává osud Falconu nejistý.

MySQL 5.7

První verze větve MySQL 5.7.1 byla oznámena 23. dubna 2013. MySQL 5.7.8 je přizpůsobena pro Debian 8 a Ubuntu 15.04. Nejnovější vydání je 5.7.32 z 19.10.2020. [24]

MySQL 8.0

Verze 8.0.0 byla vydána 9. 12. 2016, ale verze 8.0.11, vydaná 19. 4. 2018, byla oficiálně celosvětově použitelná. Nejnovější verze je 8.0.22 (vydání ze dne 19.10.2020) [28]

Specifikace

Maximální velikosti tabulky

Maximální velikost tabulek v MySQL 3.22 je až 4 gigabajty, v dalších verzích již žádná omezení nejsou.

Velikost stolu je omezena jeho typem. Obecně je typ MyISAM omezen limitem velikosti souboru systému souborů operačního systému. Například na NTFS by tato velikost mohla být teoreticky až 32 exabajtů . V případě InnoDB může být jedna tabulka uložena ve více souborech představujících jeden tabulkový prostor . Velikost posledně jmenovaného může dosáhnout 64 terabajtů .

Na rozdíl od MyISAMInnoDB výrazné omezení počtu sloupců, které lze přidat do jedné tabulky. Výchozí velikost stránky paměti je 16 kilobajtů, z nichž je 8123 bajtů vyhrazeno pro data. Velikost ukazatele na dynamická pole je 20 bajtů. V případě použití formátu dynamických řádků ( ROW_FORMAT=DYNAMIC) tedy může jedna tabulka obsahovat maximálně 409 sloupců typu blobnebo text.

Lokalizace

Počínaje verzí 4.1 byl v MySQL DBMS implementován nový systém kódování a porovnávání . Při použití kódování Windows-1251 musíte před provedením příkazů SQL nakonfigurovat kódování připojení pomocí operátorů:

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

Tyto tři příkazy jsou ekvivalentní volání jednoho příkazu:

SET NAMES 'cp1251'

Proměnná character_set_clientnastavuje kódování dat odesílaných od klienta, proměnná character_set_resultsnastavuje kódování dat odesílaných klientovi, proměnná character_set_connectionnastavuje kódování, do kterého se převádějí informace přijaté od klienta před provedením požadavku na serveru.

Při použití Unicode UTF-8 vypadá toto prohlášení takto:

SET NAMES 'utf8mb4'

Kódování ISO 8859-5 není podporováno.

Problém s Unicode

MySQL neumožňuje správné použití regulárních výrazů (operátory REGEXP a RLIKE) na řetězcích ve vícebajtových kódováních, jako je Unicode (UTF-8) [29] . Pokud jsou takové operace nutné, je třeba přejít na jednobajtové kódování, například ruské Win-1251 nebo KOI-8 .

Poznámky

  1. Změny v MySQL 8.0.30 (2022-07-26, Obecná dostupnost) – 2022.
  2. The mysql Open Source Project na Open Hub: Languages ​​​​Page  (anglicky) - 2006.
  3. Projekt mysql Open Source na Open Hub: Stránka jazyků - 2006.
  4. 1 2 3 4 5 Podporované platformy:  Databáze MySQL
  5. 1 2 3 4 Podporované platformy: Databáze 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 Archivováno 14. července 2017 na Wayback Machine 1.3.1. Co je MySQL? Referenční příručka MySQL 5.7.
  9. MySQL :: Pozorování Kaj Arnö @Sun Archivováno 22. března 2012.  (Angličtina)
  10. Oracle koupí Sun (odkaz není k dispozici) . Získáno 24. dubna 2013. Archivováno z originálu 22. dubna 2009. 
  11. Oracle dokončil akvizici Sun Archivováno 27. ledna 2012 na Wayback Machine 
  12. MySQL. Admin Guide = MySQL. Příručka správce. - M .: Williams Publishing House , 2005.  -S. 624 . — ISBN 5-8459-0805-1 .
  13. [ Historie MySQL  ] . Získáno 25. března 2008. Archivováno z originálu 31. srpna 2009. Historie  MySQL _
  14. Licenční výjimka FOSS . Staženo 6. 5. 2016. Archivováno z originálu 15. 5. 2016.
  15. MySQL :: Referenční příručka MySQL 8.0 :: 28 Konektory a rozhraní API . dev.mysql.com. Staženo 15. dubna 2019. Archivováno z originálu 5. dubna 2019.
  16. B.3. Změny ve verzi 3.23.x (ukončena podpora životního cyklu) (mrtvý odkaz) . Věštec. Získáno 24. srpna 2010. Archivováno z originálu dne 4. dubna 2013.  
  17. B.2. Změny ve vydání 4.0.x (ukončena podpora životního cyklu) (mrtvý odkaz) . Věštec. Získáno 24. srpna 2010. Archivováno z originálu dne 4. dubna 2013. 
  18. B.1. Změny ve verzi 4.1.x (ukončena podpora životního cyklu) (mrtvý odkaz) . Věštec. Získáno 24. srpna 2010. Archivováno z originálu dne 4. dubna 2013. 
  19. C.1. Změny ve vydání 5.0.x (ukončena podpora životního cyklu) (mrtvý odkaz) . Věštec. Získáno 24. srpna 2010. Archivováno z originálu dne 4. dubna 2013. 
  20. C.1. Změny ve verzi 5.1.x (Produkce) (downlink) . Věštec. Získáno 24. srpna 2010. Archivováno z originálu dne 4. dubna 2013. 
  21. C.1. Změny ve vydání 5.5.x (Produkce) (downlink) . Věštec. Získáno 24. srpna 2010. Archivováno z originálu dne 4. dubna 2013. 
  22. C.1. Změny ve verzi 5.6.x (vývoj) (nedostupný odkaz) . Věštec. Získáno 24. srpna 2010. Archivováno z originálu dne 4. dubna 2013. 
  23. [Změny v MySQL 5.6.50 (2020-10-19, obecná dostupnost) Oznámení vydání MySQL 5.6.50 ze dne 19. 10. 2020]
  24. 1 2 Oznámení vydání MySQL 5.7.32 ze dne 19. 10. 2020 . Získáno 16. ledna 2021. Archivováno z originálu dne 28. února 2021.
  25. Co je nového v MySQL 5.1 (downlink) . Datum přístupu: 13. srpna 2009. Archivováno z originálu 28. června 2009. 
  26. Přehled inovací v MySQL 5.1 v ruštině . Získáno 22. prosince 2008. Archivováno z originálu 26. prosince 2008.
  27. Přehled funkcí úložiště Maria na opennet.ru . Datum přístupu: 7. ledna 2009. Archivováno z originálu 9. února 2009.
  28. Oznámení vydání MySQL 8.0.22 ze dne 19. 10. 2022 . Získáno 16. ledna 2021. Archivováno z originálu dne 26. února 2021.
  29. "Operátory REGEXP a RLIKE pracují bajtově, takže nejsou vícebajtové bezpečné a s vícebajtovými znakovými sadami mohou přinést neočekávané výsledky." . Datum přístupu: 30. července 2014. Archivováno z originálu 29. července 2014.

Literatura

  • V. Vaswani. MySQL: Použití a správa = Použití a správa databáze MySQL. - M .: "Piter" , 2011. - 368 s. - ISBN 978-5-459-00264-5 .
  • Steve Swaring, Tim Converse, Joyce Park. PHP a MySQL. The Programmer's Bible 2nd Edition = PHP 6 a MySQL 6 Bible. - M. : "Dialektika" , 2010. - 912 s. - ISBN 978-5-8459-1640-2 .
  • Robert Sheldon, Geoffrey Moyet. MySQL 5: základní kurz = Začínáme s MySQL. - M .: "Dialektika" , 2007. - 880 s. - ISBN 978-5-8459-1167-4 .
  • Kuzněcov Maxim, Simdjanov Igor. MySQL na příkladu. - Petrohrad. : "BHV-Petersburg" , 2008. - S. 952. - ISBN 978-5-9775-0066-1 .
  • Paul Dubois. MySQL, 3. vydání = MySQL, 3. vydání. - M .: "Williams" , 2006. - 1168 s. — ISBN 5-8459-1119-2 .
  • Kuzněcov Maxim, Simdjanov Igor. MySQL 5. Originál. - Petrohrad. : "BHV-Petersburg" , 2006. - S. 1024. - ISBN 5-94157-928-4 .
  • Kuzněcov Maxim, Simdjanov Igor. Výukový program MySQL 5. - Petrohrad. : "BHV-Petersburg" , 2006. - S. 560. - ISBN 5-94157-754-0 .

Odkazy