MySQL — реляционная система управления базами данных (СУБД), разработанная в 1995 году. Она хранит информацию в связанных таблицах и управляет ею с помощью языка SQL (язык структурированных запросов, Structured Query Language). По данным рейтинга DB-Engines за 2023 год, MySQL занимает второе место в мире: ею пользуются 18,56% разработчиков. За большинством сайтов на WordPress, Joomla и Magento стоит именно эта СУБД.
В статье — простое объяснение: как устроена MySQL, кто и где её применяет, чем она отличается от PostgreSQL и MariaDB и как начать работу прямо сегодня.
Учитесь бесплатно за счёт государства
Экономия до 100 000 ₽ на любой программе
Представьте библиотеку: книги — это данные, а библиотекарь знает, где лежит каждая из них, выдаёт по запросу и следит, чтобы два читателя не испортили одну копию. MySQL — такой «библиотекарь» для данных вашего приложения.
Технически MySQL — это реляционная СУБД: она хранит данные в таблицах, где каждая строка — запись, каждый столбец — атрибут. Таблицы связаны между собой ключами: первичный ключ (PRIMARY KEY) уникально идентифицирует строку внутри таблицы, а внешний ключ (FOREIGN KEY) связывает записи из разных таблиц.
Важное разграничение: база данных — набор самих данных, а СУБД — программа, которая ими управляет. MySQL является и тем и другим: средой для создания баз данных и инструментом их администрирования.
Управление данными происходит через SQL-запросы: SELECT (получить), INSERT (добавить), UPDATE (изменить), DELETE (удалить). MySQL поддерживает все стандартные операции реляционной модели и расширяет стандарт ANSI SQL рядом собственных возможностей.
Распространяется MySQL под лицензией GNU GPL — бесплатно для некоммерческих проектов. С 2010 года СУБД принадлежит Oracle Corporation, однако версия Community Edition по-прежнему доступна без платежей. MySQL — постоянный компонент технологического стека LAMP (Linux + Apache + MySQL + PHP), который лежит в основе большинства хостинг-решений для малого и среднего бизнеса.

В 1995 году трое шведских разработчиков — Майкл Видениус, Дэвид Аксмарк и Аллан Ларссон — основали компанию MySQL AB и выпустили первую версию СУБД. В 2000 году компания открыла исходный код под лицензией GNU GPL, что дало толчок массовому распространению MySQL в интернете.
В 2008 году MySQL AB приобрела Sun Microsystems, а в 2010 году Sun вместе со всеми активами перешла к Oracle Corporation. Опасаясь замедления развития проекта под корпоративным управлением, Видениус ещё в 2009 году создал форк (ответвление кода) — MariaDB. Она полностью совместима с MySQL, распространяется под лицензией GPL v2 и развивается независимо от Oracle.
Хотите разобраться с базами данных на практике? В рамках федерального проекта «Активные меры содействия занятости» ТГУ предлагает программу «Специалист по аналитике и базам данных в информационных системах» — 72 часа обучения с нуля, без оплаты. Смотрите каталог доступных программ.

MySQL работает по клиент-серверной модели: данные хранятся на сервере, а приложения и утилиты подключаются к нему и отправляют SQL-запросы. MySQL Server — центральный процесс: он принимает запросы, разбирает их, обращается к хранилищу данных и возвращает результат клиенту. Физически данные записаны в файлы на диске; логически — организованы в схемы, таблицы и строки.
MySQL Server управляет подключениями, разбирает SQL-запросы и делегирует операции чтения и записи движку хранения (storage engine). По умолчанию начиная с MySQL 5.5 используется движок InnoDB: он поддерживает ACID-транзакции и блокировку на уровне строки (row-level locking), что обеспечивает целостность данных при параллельных операциях.
Логическая структура базы данных:
Встроенные механизмы безопасности охватывают аутентификацию по логину и паролю, управление привилегиями на уровне базы данных и таблицы, а также шифрование соединений через протокол TLS (Transport Layer Security, безопасный транспортный уровень).
MySQL Workbench — официальная графическая оболочка (GUI) для работы с MySQL. Доступна на Windows, Linux и macOS, распространяется бесплатно. Workbench объединяет три инструмента: визуальный редактор схем баз данных, SQL-редактор с подсветкой синтаксиса и панель мониторинга производительности сервера.

phpMyAdmin — веб-интерфейс с открытым исходным кодом. Запускается в браузере без установки отдельного клиента, удобен для работы на удалённом хостинге. Большинство провайдеров предустанавливают phpMyAdmin в панели управления.

MySQL Shell — консольный клиент для опытных администраторов. Поддерживает JavaScript, Python и SQL-режимы, подходит для автоматизации и скриптового управления сервером.
MySQL применяют компании разного масштаба: Facebook (Meta), YouTube и Airbnb строили на ней первые системы хранения пользовательских данных. Системы управления контентом (CMS) — WordPress, Joomla и Drupal — используют MySQL по умолчанию. Онлайн-игры Minecraft и Counter-Strike хранят в ней игровую статистику и пользовательские профили.
Типичные пользователи: бэкенд-разработчики, администраторы баз данных (DBA) и аналитики данных.
Стек LAMP (Linux + Apache + MySQL + PHP) — стандартный набор инструментов для хостинга веб-приложений. Его аналоги: WAMP (для Windows), MAMP (для macOS), LEMP (с Nginx вместо Apache).

Для масштабирования MySQL поддерживает репликацию по схеме мастер-слейв: основной сервер (мастер) записывает данные и передаёт изменения подчинённым серверам (слейвам). Это обеспечивает отказоустойчивость и позволяет распределить нагрузку на чтение между несколькими машинами. Горизонтальное масштабирование реализуется через шардинг — разбиение данных между несколькими серверами.

Эффективная работа с MySQL требует понимания нескольких фундаментальных механизмов. MySQL — не просто хранилище: она предоставляет инструменты для обеспечения целостности данных, ускорения запросов и повторного использования бизнес-логики на стороне сервера. Ниже — три ключевых концепции, с которыми сталкивается каждый разработчик.
Транзакция в СУБД — набор SQL-операций, выполняемых как единое целое: либо все шаги завершаются успешно, либо ни один из них не сохраняется.
Движок InnoDB обеспечивает ACID-совместимые транзакции:
Классический пример — банковский перевод: списание со счёта и зачисление должны выполниться вместе или не выполниться вовсе. Управление транзакцией: BEGIN — начало, COMMIT — подтверждение, ROLLBACK — отмена.
Индекс — вспомогательная структура, ускоряющая поиск записей (аналог оглавления в книге). Без индекса MySQL перебирает все строки таблицы; с ним — переходит сразу к нужным записям.
Хотите сменить профессию или повысить квалификацию?
Федеральный проект «Активные меры содействия занятости» даёт возможность пройти обучение бесплатно за счёт государства
Основные типы индексов:
Индексы ускоряют SELECT, но незначительно замедляют INSERT и UPDATE — это нормальный компромисс.
Нормализация — процесс проектирования схемы, устраняющий избыточность данных. Три нормальные формы (1НФ → 2НФ → 3НФ) последовательно убирают дублирование и аномалии обновления, обеспечивая целостность и предсказуемость базы.
Хранимая процедура — именованный блок SQL-кода, который хранится непосредственно на сервере MySQL и вызывается по имени. Логика выполняется на стороне сервера: данные не передаются по сети между приложением и СУБД, что снижает задержку и сетевой трафик.
Типичный сценарий — автоматический расчёт итоговой суммы заказа при добавлении позиций. Процедура создаётся командой CREATE PROCEDURE, вызывается командой CALL.
MySQL занимает стабильную позицию в топе СУБД не случайно. У неё есть реальные сильные стороны и ограничения, которые важно учитывать при выборе технологии для проекта.
| Преимущества |
Недостатки |
|---|---|
| Бесплатная лицензия GNU GPL | Снижение производительности при очень больших объёмах данных |
| Простая установка на Windows, Linux, macOS, Unix | Медленное развитие функциональности под управлением Oracle |
| Высокая производительность на малых и средних базах данных | Меньше встроенных функций, чем у PostgreSQL |
| Поддержка PHP, Python, Java, C++ и других языков | |
| Репликация (мастер-слейв) и шардинг для масштабирования | |
| До 50 млн строк в таблице в стандартной конфигурации | |
| Активное сообщество и обширная документация |
MySQL — оптимальный выбор для малого и среднего веб-проекта, изучения реляционных баз данных и разработки в стеке LAMP. При необходимости работы с геоданными, сложными аналитическими запросами или форматом JSONB стоит рассмотреть PostgreSQL.
Выбор СУБД зависит от задачи, команды и масштаба проекта. MySQL часто сравнивают с PostgreSQL, MariaDB и другими системами — у каждой своя ниша.
| СУБД |
Лицензия |
Порог входа |
Производительность |
Лучший сценарий |
|---|---|---|---|---|
| MySQL | GNU GPL / Commercial | Низкий | Высокая на веб-нагрузках | Веб, CMS, обучение |
| MariaDB | GPL v2 | Низкий | Сопоставима с MySQL | Замена MySQL без Oracle |
| PostgreSQL | PostgreSQL License | Средний | Высокая на сложных запросах | Аналитика, геоданные, JSONB |
| SQLite | Публичное достояние | Очень низкий | Подходит для малых объёмов | Мобильные приложения, прототипы |
| Oracle DB | Commercial | Высокий | Очень высокая | Корпоративные системы |
| MS SQL Server | Commercial | Средний | Высокая | Windows-экосистема, .NET |
Доступ к MySQL можно получить тремя способами — от быстрого к гибкому.
Способ 1: через хостинг. Большинство хостинг-провайдеров предустанавливают MySQL и phpMyAdmin: достаточно открыть личный кабинет и активировать базу данных в несколько кликов.
Способ 2: MySQL Community Edition. Официальная бесплатная версия доступна на сайте mysql.com под лицензией GNU GPL — для локальной разработки и серверного развёртывания на любой платформе.
Способ 3: готовый стек. Open Server Panel (Windows), MAMP (macOS) или стандартный пакет LAMP (Linux) разворачивают MySQL вместе с веб-сервером за несколько минут без ручной настройки каждого компонента.
Тем, кто хочет освоить MySQL и работу с базами данных системно — с SQL-запросами, проектированием схем и реальными кейсами, — подойдёт программа «Специалист по аналитике и базам данных в информационных системах» (72 ч.) в рамках нацпроекта «Кадры». Обучение проходит с нуля, без оплаты.
MySQL проще в освоении и быстрее работает на малых и средних базах данных с нагрузками, типичными для веб-приложений. PostgreSQL шире по функциональности: поддерживает JSONB, геоданные и сложные аналитические запросы. MySQL выбирают для веб-проектов и систем управления контентом, PostgreSQL — для аналитических систем.
MySQL Community Edition распространяется по лицензии GNU GPL и доступна бесплатно для некоммерческих проектов. Для коммерческого использования с закрытым исходным кодом требуется Commercial License. Скачать бесплатную версию можно на официальном сайте MySQL.
SQL (Structured Query Language) — язык запросов для реляционных баз данных. MySQL использует SQL для всех операций: создания таблиц (CREATE), чтения данных (SELECT), изменения (UPDATE) и удаления (DELETE). Диалект MySQL близок к стандарту ANSI SQL, но содержит расширения Oracle.
MariaDB — форк MySQL, созданный Майклом Видениусом в 2009 году после перехода СУБД к Oracle. Полностью обратно совместима с MySQL: SQL-запросы, схемы и драйверы работают без изменений. Отличия: независимость от Oracle, ускоренный цикл выпуска обновлений и дополнительные движки хранения.
utf8mb4 — кодировка MySQL с полной поддержкой Unicode, включая эмодзи. В отличие от utf8, она хранит символы, занимающие 4 байта. Для всех новых проектов рекомендуется устанавливать её явно: ALTER TABLE t CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci.
Миграции — управление изменениями схемы базы данных под версионным контролем: добавление и изменение таблиц воспроизводится с возможностью отката. Популярные инструменты для MySQL: Liquibase и Flyway. Для резервного копирования используется утилита mysqldump, создающая логический дамп базы.
База данных — организованная коллекция структурированных данных. СУБД — программа, которая этими данными управляет: создаёт, изменяет и удаляет записи, обеспечивая целостность. MySQL — реляционная СУБД: хранит данные в связанных таблицах и управляет ими через SQL-запросы. Широко применяется в веб-разработке, образовании и аналитике.
MySQL Error 1045 (Access denied) возникает при неверных логине или пароле при подключении. Другие частые коды: 2003 — сервер MySQL недоступен, 1064 — синтаксическая ошибка в SQL-запросе, 1215 — нарушение условия внешнего ключа (FOREIGN KEY). Для диагностики используйте MySQL error log и команду SHOW VARIABLES;.
Подайте заявку —
забронируйте место в группе
45 000 мест на 2026 год. Бесплатное обучение по федеральному проекту «Активные меры содействия занятости»