MySQL — система управления базами данных¶
MySQL — это свободная реляционная система управления базами данных (СУБД), работающая по клиент-серверной модели и использующая язык запросов SQL. Одна из наиболее распространённых СУБД в мире, особенно в связке с веб-сервером Apache и PHP в составе технологического стека LAMP. Разработана шведской компанией MySQL AB, с 2008 года принадлежит Oracle Corporation. Применяется на сайтах и серверах разного масштаба — от небольших блогов до крупных веб-сервисов.
¶История
MySQL создавался в 1994—1995 годах шведскими разработчиками Михаэлем «Монти» Видениусом и Дэвидом Аксмарком. Первая версия вышла в 1995 году. Название происходит от сокращения «My» — от фамилии дочери Видениуса, и одновременно от «My» в названии системы MyISAM, одного из первых движков хранения MySQL.
В 2000 году MySQL перешёл на лицензию GPL, что сделало его свободным программным обеспечением для открытых проектов. В 2008 году компания Sun Microsystems приобрела MySQL AB за 1 млрд долларов, а в 2010 году Sun сама была поглощена Oracle Corporation, которая владеет MySQL по сей день. После перехода под контроль Oracle часть разработчиков создала форк MariaDB.
¶Устройство и архитектура
MySQL построен по клиент-серверной архитектуре: сервер mysqld обрабатывает запросы, а клиенты подключаются по TCP/IP или через сокеты. Основные особенности:
- Модульная система движков хранения. Формат таблиц определяется не ядром СУБД, а подключаемым движком. По умолчанию используется InnoDB, поддерживающий транзакции, внешние ключи и восстановление после сбоев. Другие движки: MyISAM, Memory, Archive, CSV.
- Поддержка SQL. Реализованы SELECT, INSERT, UPDATE, DELETE, JOIN, подзапросы, представления, хранимые процедуры, триггеры, курсоры.
- Репликация. Поддерживается асинхронная и полусинхронная репликация, в том числе каскадная, что позволяет разделять нагрузку на чтение и запись.
- Кэширование. Запросы кэшируются, результаты повторяющихся запросов отдаются из памяти.
¶Лицензирование
MySQL распространяется под двумя лицензиями. Сообщественная версия (MySQL Community Server) доступна по GPL и бесплатна для использования в открытых проектах. Коммерческая версия с расширенной функциональностью и поддержкой продаётся Oracle по подписке. Для встраивания MySQL в проприетарное ПО Oracle предлагает отдельные коммерческие лицензии.
¶Применение
MySQL является основой LAMP — классического набора программ для веб-серверов (Linux, Apache, MySQL, PHP/Perl/Python). Система широко используется в:
- WordPress, Joomla, Drupal — движках сайтов;
- phpMyAdmin — веб-интерфейсе для управления базами;
- многочисленных веб-приложениях на PHP, Python, Ruby, Java;
- облачных сервисах, включая Amazon RDS и Google Cloud SQL.
Среди известных пользователей — Facebook (продукт Meta, признанной экстремистской и запрещённой в РФ), Twitter, YouTube, Wikipedia.
¶Сравнение с PostgreSQL
MySQL и PostgreSQL — две основные свободные СУБД с открытым исходным кодом. Ключевые отличия:
| Критерий | MySQL | PostgreSQL |
|---|---|---|
| Строгость SQL | Менее строгий, допускает упрощения | Строгое соответствие стандарту |
| Транзакции | InnoDB — полная поддержка | Полная поддержка |
| Производительность чтения | Выше на простых запросах | Ниже на тривиальных, выше на сложных |
| Расширяемость | Ограничена движками | Пользовательские типы, операторы |
¶Версии и развитие
Oracle выпускает MySQL по нумерации вида 8.0, 8.1, 9.0. В версии 8.0 появились оконные функции, JSON-поддержка, улучшенная оптимизация запросов. Версия 9.0 добавила функциональность для работы с документами и улучшенный планировщик. Развивается и форк MariaDB, который остаётся полностью совместимым с MySQL.
¶Критика
После перехода MySQL под контроль Oracle часть сообщества выразила обеспокоенность закрытием разработки. Это стало одной из причин создания MariaDB в 2009 году. Кроме того, MySQL исторически менее строго следовал стандартам SQL по сравнению с PostgreSQL, что вызывало сложности при переносе приложений между СУБД.
¶См. также
- LAMP
- MariaDB
- PostgreSQL
- Реляционная база данных
¶Источники
- Документация MySQL Reference Manual, Oracle Corporation
- «MySQL Cookbook» — Paul DuBois
- «High Performance MySQL» — Baron Schwartz и др.
- Сайт проекта MariaDB
