encyklopedia.space

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.

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.