Открыть сервис

MySQL

MySQL — это система управления реляционными базами данных (СУБД) с открытым исходным кодом, разрабатываемая и поддерживаемая компанией Oracle Corporation. MySQL работает по принципу клиент-серверной архитектуры, использует язык структурированных запросов (SQL) и является одной из наиболее распространённых реляционных СУБД в мире, особенно в сфере веб-разработки.

История

Создание и ранние годы (1995—2000)

Разработка MySQL была начата шведской компанией MySQL AB, основанной Дэвидом Аксмарком, Алланом Ларссоном и Михаэлем Видениусом. Название «MySQL» происходит от имени дочери Видениуса — Ми (My; по другой версии, от английского «my» — «мой»), а «SQL» — аббревиатура от Structured Query Language. Первая внутренняя версия была выпущена в 1995 году, а первая публичная версия (3.11) — в 1996 году.

Изначально MySQL создавалась как альтернатива коммерческим СУБД, таким как Oracle и Informix. Она была оптимизирована для быстрой работы на недорогом оборудовании и не поддерживала сложные функции, такие как хранимые процедуры, триггеры и представления, что компенсировалось высокой скоростью выполнения запросов.

Эпоха роста и приобретение Sun Microsystems (2000—2008)

В 2001 году компания MySQL AB начала предлагать коммерческую лицензию в дополнение к открытой (GNU General Public License). К середине 2000-х годов MySQL стала стандартом для веб-приложений, благодаря тесной интеграции с языком программирования PHP и широкому использованию в связке Apache — MySQL — PHP (позже Linux, Apache, MySQL, Perl/PHP/Python — стек LAMP).

В 2008 году компания MySQL AB была приобретена корпорацией Sun Microsystems за 1 миллиард долларов США. Основным мотивом покупки было желание Sun получить контроль над популярной СУБД для интеграции со своими продуктами, такими как Solaris и Java.

Приобретение Oracle и последствия (2009 — настоящее время)

В 2009 году компанию Sun Microsystems приобрела корпорация Oracle Corporation, которая уже владела коммерческой СУБД Oracle. Сделка на сумму 7,4 миллиарда долларов была завершена в 2010 году и вызвала серьёзные опасения среди пользователей MySQL и регулирующих органов по поводу возможного свёртывания разработки открытой версии.

Чтобы получить одобрение антимонопольных органов, Oracle взяла на себя обязательства по развитию MySQL и поддержанию её открытого кода. После приобретения серверная часть MySQL осталась полностью открытой (GPL), хотя Oracle предлагает платные коммерческие лицензии с дополнительной поддержкой.

Архитектура и принципы работы

Клиент-серверная модель

MySQL работает по классической клиент-серверной архитектуре. Серверный процесс (mysqld) принимает соединения от клиентов (например, веб-сервера), обрабатывает запросы SQL и возвращает результаты. Клиент может быть как локальным (на той же машине), так и удалённым. Для связи используется протокол TCP/IP (по умолчанию порт 3306) или UNIX-сокеты для локального взаимодействия.

Подсистемы хранения данных (Storage Engines)

Ключевая особенность MySQL — поддержка различных подсистем хранения данных (storage engines), каждая из которых оптимизирована под определённые задачи:

В ранних версиях (до 5.5) по умолчанию использовался MyISAM, однако он не поддерживал транзакции и блокировки на уровне строк. С переходом на InnoDB MySQL стала полноценной ACID-совместимой СУБД (Atomicity, Consistency, Isolation, Durability).

Основные возможности

Типы данных

MySQL поддерживает широкий спектр типов данных:

Индексы

Для ускорения запросов MySQL использует различные типы индексов:

Транзакции и блокировки

InnoDB поддерживает транзакции с четырьмя уровнями изоляции по стандарту SQL:

MySQL использует блокировки на уровне таблиц (MyISAM, MEMORY), страниц и строк (InnoDB). Блокировки могут быть общими (shared) и исключительными (exclusive).

Репликация

MySQL поддерживает несколько видов репликации для обеспечения отказоустойчивости и распределения нагрузки:

Применение

MySQL является одной из самых популярных СУБД в мире, занимая лидирующие позиции среди реляционных баз данных с открытым кодом. Основные области применения:

По данным рейтинга DB-Engines (2024 год), MySQL стабильно входит в тройку самых популярных СУБД в мире, уступая только Oracle Database и Microsoft SQL Server, и опережая все остальные свободные СУБД, включая PostgreSQL и MariaDB.

Форки и ответвления

Поскольку MySQL распространяется под лицензией GPL, появилось несколько независимых ответвлений (форков):

Критика

Несмотря на широкую популярность, MySQL подвергается критике по нескольким направлениям:

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →