MySQL
MySQL jest otwartoźródłowym, relacyjnym systemem zarządzania bazą danych (RDBMS) wykorzystującym język SQL. System ten jest szeroko stosowany w aplikacjach internetowych oraz w rozwiązaniach klasy LAMP (Linux, Apache, MySQL, PHP/Perl/Python).
Historia
Projekt MySQL rozpoczął się w 1994 roku w Finlandii, kiedy to Michael Widenius i David Axmark postanowili stworzyć szybki system bazodanowy dla swoich własnych potrzeb programistycznych. Nazwa pochodzi od imienia córki Wideniusa – My oraz od słowa SQL.
- 1995 roku pojawiła się pierwsza wersja 1.0, dostępna na platformę Linux oraz Windows.
- W 1998 roku wydano wersję 3.23, wprowadzającą obsługę indeksów pełnotekstowych.
- W 2000 roku pojawił się silnik MyISAM, który stał się domyślnym w kolejnych wersjach.
- W 2005 roku ukazała się wersja 5.0, wprowadzająca procedury przechowywane, wyzwalacze i widoki.
- W 2008 roku system został przejęty przez Sun Microsystems, a dwa lata później, w 2010 roku, po przejęciu Sun przez Oracle Corporation, MySQL stał się częścią portfolio Oracle.
Architektura
MySQL działa w modelu klient‑serwer. Centralnym elementem jest serwer mysqld, który realizuje obsługę zapytań, zarządzanie transakcjami oraz dostęp do silników przechowywania. Do komunikacji z serwerem używane są liczne klienty i biblioteki (np. Connector/C, Connector/J, Connector/Python).
Silniki przechowywania
- InnoDB – silnik transakcyjny, zapewniający pełną zgodność z ACID, wsparcie dla kluczy obcych i blokowanie wierszowe.
- MyISAM – silnik nie‑transakcyjny, szybki w odczycie, wykorzystywany w starszych instalacjach.
- MEMORY – przechowuje dane w pamięci RAM, przydatny do tymczasowych tabel.
- Archive – zoptymalizowany pod kątem archiwizacji dużych ilości danych.
Licencjonowanie
MySQL jest dystrybuowany na licencji GPLv2, co umożliwia bezpłatne użycie, modyfikację i rozpowszechnianie kodu źródłowego. Jednocześnie Oracle oferuje komercyjne wersje (MySQL Enterprise) z dodatkowymi funkcjami, wsparciem technicznym i narzędziami.
Wersje i najważniejsze funkcje
| Wersja | Rok wydania | Kluczowe funkcje |
|---|---|---|
| 5.0 | 2005 | Procedury przechowywane, wyzwalacze, widoki, wsparcie dla Unicode |
| 5.1 | 2008 | Replikacja, partycjonowanie tabel |
| 5.5 | 2010 | Domyślny silnik InnoDB, lepsza wydajność pod kątem wielowątkowości |
| 5.6 | 2013 | Wsparcie dla pełnotekstowego wyszukiwania w InnoDB, linie binarne |
| 5.7 | 2015 | Poprawiona wydajność, optymalizacje JSON, monitorowanie |
| 8.0 | 2018 | Wsparcie dla JSON, wyrażenia wspólne (CTE), lustrzane zapytania, domyślny format znaków utf8mb4 |
Zastosowania
MySQL jest wykorzystywany w:
- serwisach internetowych (WordPress, Drupal, Joomla),
- systemach e‑commerce (Magento, PrestaShop),
- aplikacjach mobilnych korzystających z backendu w chmurze,
- rozwiązaniach korporacyjnych jako część stacku LAMP lub MEAN (z zamiennikiem MySQL – MongoDB w niektórych warstwach).
Narzędzia i interfejsy
Do zarządzania bazami MySQL dostępnych jest wiele narzędzi:
- phpMyAdmin – aplikacja webowa umożliwiająca administrację bazą.
- MySQL Workbench – graficzny interfejs do modelowania, projektowania i administracji.
- CLI – wiersz poleceń
mysql, używany w skryptach i automatyzacji.
Rozgałęzienia i kompatybilne implementacje
Po przejęciu przez Oracle, w 2009 roku powstał fork MySQL – MariaDB, prowadzony przez pierwotnych twórców i społeczność open‑source. MariaDB zachowuje kompatybilność binarną z MySQL, jednocześnie wprowadzając nowe silniki i optymalizacje. Inne pochodne to Percona Server oraz Amazon Aurora (kompatybilny z MySQL).
Bezpieczeństwo
MySQL oferuje mechanizmy zabezpieczające, takie jak:
- uwierzytelnianie oparte na hasłach, SSL/TLS i Kerberos,
- role i przywileje na poziomie użytkownika i bazy danych,
- zasady szyfrowania danych w spoczynku (InnoDB Transparent Data Encryption),
- logowanie i audyt (MySQL Audit Plugin).
Porównanie z innymi systemami
W porównaniu z PostgreSQL, MySQL charakteryzuje się prostszą konfiguracją i wyższą wydajnością w typowych obciążeniach typu odczyt‑wiele‑krotne. Jednak PostgreSQL oferuje bardziej rozbudowane wsparcie dla standardów SQL, typów danych i rozszerzalności. W środowiskach, w których liczy się pełna zgodność z SQL:2016 i zaawansowane funkcje analityczne, częściej wybiera się PostgreSQL.
Patrząc w przyszłość
MySQL kontynuuje rozwój pod auspicjami Oracle, koncentrując się na:
- eksploatacji danych w formacie JSON oraz XML,
- większej integracji z chmurą (HeatWave – usługa analityczna),
- poprawie skalowalności poziomej przy użyciu grup replikacji i sharding.
MySQL pozostaje jednym z najpopularniejszych systemów bazodanowych na świecie, a jego otwartoźródłowa natura zapewnia aktywne zaangażowanie społeczności programistów i administratorów.