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 ( 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]
- První interní vydání MySQL proběhlo 23. května 1995. .
- Verze pro systémy Windows (Windows 95 a NT) byla vydána 8. ledna 1998.
- Verze 3.23: beta červen 2000, vydání leden 2001.
- Verze 4.0: beta srpen 2002, vydání březen 2003.
- Verze 4.1: beta červen 2004, vydání říjen 2004.
- Verze 5.0: beta březen 2005, vydání říjen 2005.
- Verze 5.1: vyvinuta od listopadu 2005, vydána v listopadu 2008.
- Verze 5.4: duben 2009 beta, nebyla vydána.
- Verze 5.5: vydání v prosinci 2010.
- Verze 5.6: ve vývoji (poslední vydání - 5.6.50 ze dne 19.10.2020). [23]
- Verze 5.7: ve vývoji (poslední vydání - 5.7.32 ze dne 19. 10. 2020). [24]
MySQL 4.0
Přestože je verze 4.0 zastaralá, stále má významnou distribuci. . Hlavní vlastnosti této verze:
- téměř kompletní implementace ANSI SQL-99 plus rozšíření;
- kompatibilita mezi platformami;
- nezávislé typy tabulek ( MyISAM pro rychlé čtení, InnoDB pro transakce a referenční integritu);
- transakce ;
- podpora SSL ;
- ukládání dotazů do mezipaměti ;
- replikace : jeden hlavní server na slave, mnoho slave na master;
- fulltextové indexování a vyhledávání pomocí typu tabulky MyISAM;
- vestavěná databázová knihovna;
- podpora Unicode ( UTF-8 );
- Tabulky InnoDB pro shodu s ACID ;
- vestavěný server, který umožňuje zahrnout MySQL do samostatných aplikací.
MySQL 4.1
Doporučená verze pro rok 2005 je MySQL 4.1, vydaná 27. října 2004 . Obsahuje následující inovace:
- vnořené dotazy a odvozené tabulky.
- nový systém kódování a třídění;
- rychlejší a flexibilnější protokol klient-server s podporou připravených dotazů zajišťujících jejich optimální provedení;
- nový instalační a instalační program pro Microsoft Windows a Linux ;
- spojení klient-server zabezpečená přes OpenSSL ;
- vysoce optimalizovaná knihovna, kterou lze použít v programech třetích stran;
- plná podpora Unicode (UTF-8 a UCS2);
- standardní typy prostorových dat GIS pro ukládání geografických informací;
- vylepšené fulltextové vyhledávání a systém nápovědy.
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] .
- Sharding je schopnost rozdělit jednu velkou tabulku na více částí umístěných v různých souborových systémech na základě uživatelem definované funkce. Za určitých podmínek to může přinést výrazné zvýšení výkonu a navíc to usnadní škálování tabulek.
- Chování řady příkazů bylo změněno tak, aby bylo více kompatibilní se standardem SQL2003.
- Řádková replikace , ve které budou do binárního protokolu zapsány pouze informace o skutečně změněných řádcích tabulky namísto původního (a možná pomalého) textu dotazu . Replikaci řádků lze použít pouze pro určité typy SQL dotazů, pokud jde o smíšenou replikaci MySQL .
- Vestavěný plánovač pravidelně spouštěných úloh. V syntaxi je přidání úlohy podobné přidání triggeru do tabulky, v ideologii je to podobné jako crontab .
- Další sada funkcí pro zpracování XML , implementace podpory XPath .
- Nové nástroje pro odstraňování problémů a nástroje pro analýzu výkonu. Možnosti správy obsahu log souborů byly rozšířeny, logy lze nově ukládat do tabulek general_log a slow_log. Obslužný program mysqlslap umožňuje provádět zátěžové testování databáze se záznamem doby odezvy pro každý požadavek.
- Pro zjednodušení operace upgradu je připravena utilita mysql_upgrade, která zkontroluje kompatibilitu všech stávajících tabulek s novou verzí a případně provede příslušné úpravy.
- MySQL Cluster je nyní vydán jako samostatný produkt založený na MySQL 5.1 a repozitáři NDBCLUSTER.
- Významné změny ve fungování MySQL Clusteru, jako je například možnost ukládat data tabulky na disk.
- Návrat k používání vestavěné knihovny libmysqld, která v MySQL 5.0 chyběla.
- API pro zásuvné moduly, které vám umožní načíst moduly třetích stran rozšiřující funkčnost (například fulltextové vyhledávání) bez restartování serveru.
- Implementace analyzátoru fulltextového vyhledávání jako zásuvného modulu.
- Nový typ tabulky Maria (klon MyISAM odolný proti chybám ).
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 MyISAM má InnoDB 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
- ↑ Změny v MySQL 8.0.30 (2022-07-26, Obecná dostupnost) – 2022.
- ↑ The mysql Open Source Project na Open Hub: Languages Page (anglicky) - 2006.
- ↑ Projekt mysql Open Source na Open Hub: Stránka jazyků - 2006.
- ↑ 1 2 3 4 5 Podporované platformy: Databáze MySQL
- ↑ 1 2 3 4 Podporované platformy: Databáze MySQL
- ↑ 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 Archivováno 14. července 2017 na Wayback Machine 1.3.1. Co je MySQL? Referenční příručka MySQL 5.7.
- ↑ MySQL :: Pozorování Kaj Arnö @Sun Archivováno 22. března 2012. (Angličtina)
- ↑ Oracle koupí Sun (odkaz není k dispozici) . Získáno 24. dubna 2013. Archivováno z originálu 22. dubna 2009. (neurčitý)
- ↑ Oracle dokončil akvizici Sun Archivováno 27. ledna 2012 na Wayback Machine
- ↑ MySQL. Admin Guide = MySQL. Příručka správce. - M .: Williams Publishing House , 2005. -S. 624 . — ISBN 5-8459-0805-1 .
- ↑ [ Historie MySQL ] . Získáno 25. března 2008. Archivováno z originálu 31. srpna 2009. (neurčitý) Historie MySQL _
- ↑ Licenční výjimka FOSS . Staženo 6. 5. 2016. Archivováno z originálu 15. 5. 2016. (neurčitý)
- ↑ 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. (neurčitý)
- ↑ 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.
(neurčitý)
- ↑ 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. (neurčitý)
- ↑ 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. (neurčitý)
- ↑ 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. (neurčitý)
- ↑ 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. (neurčitý)
- ↑ 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. (neurčitý)
- ↑ 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. (neurčitý)
- ↑ [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]
- ↑ 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. (neurčitý)
- ↑ Co je nového v MySQL 5.1 (downlink) . Datum přístupu: 13. srpna 2009. Archivováno z originálu 28. června 2009. (neurčitý)
- ↑ Přehled inovací v MySQL 5.1 v ruštině . Získáno 22. prosince 2008. Archivováno z originálu 26. prosince 2008. (neurčitý)
- ↑ Přehled funkcí úložiště Maria na opennet.ru . Datum přístupu: 7. ledna 2009. Archivováno z originálu 9. února 2009. (neurčitý)
- ↑ 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. (neurčitý)
- ↑ "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. (neurčitý)
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
Sun Microsystems (převzatý společností Oracle ) |
---|
Zařízení |
|
---|
Software |
|
---|
Datové úložiště |
|
---|
Vysoce výkonná výpočetní technika |
|
---|
Výzkum |
|
---|
Vzdělání |
|
---|
Společenství |
|
---|