Система MySQL: что это и для чего нужна

Виртуальная машина
бесплатно навсегда

Забрать
Avatar icon

Марина Суворова

Редактор блога

Статья

Время чтения

10 минут

Если вы хотите создать веб-приложение, запустить интернет-магазин или сделать игру, вам понадобится база данных. А чтобы эффективно управлять собранными в ней данными, не обойтись без СУБД — системы управления базами данных.

В этой статье кратко обсудим, что такое СУБД и какими возможностями они обладают, а также детально поговорим про MySQL — одну из самых популярных систем управления базами данных.

Зачем нужны СУБ

СУБД созданы для того, чтобы упрощать работу с данными в самых разных областях. Например, чтобы хранить и анализировать большие данные при решении задач Data Science, выполнять сложные аналитические запросы, агрегировать данные и строить ML-модели, а также оптимизировать разработку и развертывание приложений. То есть, говоря обобщенно, автоматизировать работу с любыми типами данных, помогая структурировать БД и быстрее обрабатывать любые запросы. 

Как работают СУБД? Системы управления базами данных принимают запросы пользователей, «разбирают» их на составляющие, находят в базе данных искомое и возвращают сайту в удобном для восприятия виде. А еще позволяют выполнять множество полезных функций: 

  • создавать базы данных и их администрировать;

  • структурировать данные и демонстрировать их в нужном формате; 

  • защищать данные от взлома и нежелательных изменений; 

  • сортировать информацию; 

  • делать резервные копии.   

Отметим, что СУБД бывают разные. Например, некоторые их них (реляционные) представляют данные в табличном виде, а другие (нереляционные) — могут хранить их в виде JSON-документов, графов, а также ключей-значений. 

Чтобы выбрать подходящую СУБД, нужно учесть целый ряд факторов. К примеру, определить, какой у вас проект — коммерческий или персональный, сетевой или локальный. А еще принять во внимание вид данных, с которыми планируется работа, необходимые объем хранилища и показатели отказоустойчивости и масштабируемости, а также условия поддержки. 

О системе MySQL, которая занимает второе место в рейтинге DB-Engines Ranking и известна своей высокой производительностью и способностью обрабатывать большие объемы данных, поговорим подробнее. Кстати, всего за пару минут вы можете развернуть ее в облаке, а также подключить удобный сервис для работы с облачной инфраструктурой — RDS for MySQL

MySQL и история ее развития

Логотип MySQL
Логотип MySQL

MySQL — это реляционная система управления базами данных. Она хранит информацию в связанных таблицах. С их помощью можно эффективно работать с данными: управлять ими и быстро находить нужные. Например, в одной таблице можно собрать информацию о проектах, в другой — о задачах, а в третьей — о командах, которые над ними работают. 

Система доступна в двух вариантах: бесплатная MySQL Community Edition, которой свободно может пользоваться любой разработчик или администратор баз данных, и платная MySQL Enterprise Edition — для бизнеса. Ею пользуются крупные мировые компании.

История создания MySQL

История MySQL началась в 1979 году, когда Михаил Видениус из шведской компании TcX создал СУБД под названием UNIREG. Изначально она работала только с малыми объемами данных. Но со временем систему пришлось дорабатывать и изменять, чтобы она могла справляться с увеличивающимися требованиями и объемами информации.

Через 15 лет, когда TcX начала заниматься веб-приложениями, стало очевидно, что даже с учетом всех доработок UNIREG не справляется с динамической генерацией веб-страниц. Тогда Видениус предложил Дэвиду Хьюзу, создателю клиент-серверной СУБД mSQL, совместить их технологии, но Хьюз отказался. Это спровоцировало Видениуса на разработку новой системы — MySQL, основанной на UNIREG, но с интерфейсом, аналогичным mSQL. 

Первая ее версия вышла уже через год и удовлетворила всем нуждам TcX. А еще через год мир познакомился с первой публичной версией этой системы — 3.11.1.

С 2010 года корпорация Oracle разрабатывает, поддерживает и развивает MySQL
С 2010 года корпорация Oracle разрабатывает, поддерживает и развивает MySQL

В 2010 году MySQL перешла под управление Oracle. С тех пор компания поддерживает и развивает эту систему. Она включена в серверные комплекты LAMP, WAMP и AppServ, а также в кроссплатформенные сборки XAMPP и DENWER. 

Принцип работы MySQL

Для обмена данными между пользователем и базой MySQL использует клиент-серверную архитектуру, согласно правилам которой один компьютер посылает запросы, а другой на них отвечает. В процессе поиска и выдачи информации система использует таблицы и строки, где таблица представляет собой «множество», а строка выступает «записью» в таблице. 

У MySQL клиент-серверная архитектура
У MySQL клиент-серверная архитектура

Процессы в MySQL похожи на процессы в любой клиент-серверной системе: 

  • Шаг 1. Создается база данных, которая организует, хранит и идентифицирует всю необходимую информацию. 

  • Шаг 2. Устройства, подключенные к сети, отправляют запросы к базе данных с помощью команд SQL. 

  • Шаг 3. Серверное приложение принимает эти запросы, обрабатывает их и возвращает клиенту нужные данные.

Для управления сервер MySQL использует разные программы. Некоторые работают исключительно через командную строку, другие — предлагают интуитивно-понятный графический интерфейс. В числе популярных утилит для управления данными с помощью MySQL находятся WorkBench, SequelPro и SQL Studio, а также phpMyAdmin — именно ее веб-мастеры выбирают чаще прочих, ведь она входит в пакет LAMP и удобно открывается через браузер.

Что же происходит, когда вы заходите на страницу сайта с расширением .php под управлением MySQL? Давайте рассмотрим поэтапно:

  • Этап 1. Сервер MySQL запускает выполнение кода PHP, который находится в файле этой страницы.

  • Этап 2. Данные в виде текстового массива извлекаются из базы данных с расширением .sql.

  • Этап 3. Файл стилей с расширением .css определяет расположение, размер и шрифт текста на странице.

  • Этап 4. На экране отображается запрошенная пользователем страница.

Преимущества MySQL

Теперь поговорим о том, какие преимущества позволили MySQL стать одной из самых популярных систем управления базами данных во всем мире. В их числе: 

  • Повышенная доступность для пользователей без глубоких технических знаний — для того, чтобы с работать с системой, достаточно знать стандартный язык SQL (Structured Query Language).

  • Возможность поиска информации по тексту: например, это важно для интернет-магазинов, где критичны скорость нахождения нужных товаров и оформления заказов. 

  • Автоматическая разбивка больших объемов данных на более мелкие блоки для упрощения их обработки.

  • Возможность создания собственных процедур и функций прямо на языке SQL и  применения разных методов шифрования для защиты информации, а также работы с JSON-данными без использования сторонних библиотек.

  • Поддержка разных языков программирования благодаря мощному API под капотом.

  • Гарантия бесперебойной работы даже больших систем за счет распределения нагрузки между серверами.

  • Быстрое извлечение нужных данных из базы с помощью оптимизированной обработки запросов — например, данные из таблицы в 10 000 строк MySQL извлечет за 1–10 мс.

  • Создание, изменение и удаление записей для удобного управления аккаунтами и контентом на сайтах.

  • Продуманная работа с транзакциями — все действия в рамках одной транзакции либо выполняются полностью, либо не выполняются совсем (это особенно важно для финансовых приложений, где ошибки критичны).

  • Возможность одновременной работы нескольких сотрудников с одной базой.

  • Защита данных с помощью шифрования и системы контроля доступа.

  • Восстановление данных при необходимости.

  • Встроенные инструменты: например, MySQL Enterprise Monitor, MySQLTuner и mysqldumpslow, которые отслеживают состояние базы и помогают быстро устранять проблемы, чтобы бизнес-процессы не прерывались.

Также большой вклад в распространение MySQL вносит большое сообщество разработчиков, которые активно пользуются системой и при необходимости могут помочь найти ответы на любые вопросы по ее работе. 

Недостатки MySQL

Несмотря на многообразие преимуществ, у MySQL есть и минусы:

  • Обновления MySQL редко выходят из-за политики Oracle, которая ограничивает внедрение изменений и число нововведений от сторонних разработчиков.

  • MySQL предлагает не так много встроенных возможностей: например, она не поддерживает распределенные вычисления. Это упрощает ее использование, но для расширения функциональности системы часто требуется установка дополнительных плагинов.

  • Несмотря на то, что MySQL отлично подходит для управления небольшими и средними по размеру базами данных, при высоких нагрузках она может демонстрировать непредсказуемый результат.

Где используют MySQL

MySQL является одной из топовых СУБД благодаря своей универсальности и способности к масштабированию. 

Систему активно используют в самых разных сферах:

  • MySQL применяется в веб-разработке. Она лежит в основе многих сайтов, чатов и форумов. Даже популярные системы управления контентом (CMS), гарантирующие стабильную работу веб-ресурсов, построены с использованием MySQL.

  • Второе направление, где часто используется MySQL — это корпоративные системы, такие как ERP и CRM. Их часто выбирают небольшие или средние компании, которые не могут позволить себе более дорогие решения. 

  • В сфере видеоигр MySQL помогает управлять данными о пользователях, игровых сценариях и квестах. Известные игры, такие как Warcraft III и League of Legends, используют ее для организации и хранения всей ключевой информации.

Как начать работать с MySQL

Для новичков в MySQL идеальным стартом будет бесплатная версия MySQL Community Edition. Вы можете загрузить ее с официального сайта, где также найдете исходные коды, API и коннекторы. Эти ресурсы помогут интегрировать MySQL с различными технологиями и языками программирования.

Community Edition — это бесплатная версия MySQL
Community Edition — это бесплатная версия MySQL

Основные SQL-команды 

DDL (язык описания данных) 

Этот язык использует операторы для создания, изменения и удаления объектов. Например, команда CREATE создает объект, ALTER изменяет его, а DROP удаляет.

DML (язык манипулирования данными)

Включает команды для работы с данными: SELECT выбирает записи по заданным условиям, INSERT добавляет новые данные, UPDATE вносит изменения в существующие записи, а DELETE удаляет ненужные.

Например, используя команду SELECT FROM — вариацию SELECT — можно выделить данные из конкретных столбцов:

Так с помощью команды SELECT можно выделить данные из выбранных столбцов
Так с помощью команды SELECT можно выделить данные из выбранных столбцов

С помощью INSERT INTO в базу данных удастся добавить имя пользователя и его email:

Использование INSERT INTO для добавления пользователя и его электронного адреса
Использование INSERT INTO для добавления пользователя и его электронного адреса

Чтобы изменить почту пользователя, пригодится команда UPDATE:

Использование команды UPDATE
Использование команды UPDATE

Для удаления записи нужно ввести команду DELETE FROM:

Команду DELETE FROM используют для удаления записи
Команду DELETE FROM используют для удаления записи

Чтобы создать новую базу данных есть команда CREATE DATABASE:

Команда CREATE DATABASE в деле
Команда CREATE DATABASE в деле

А после создания базы с условным названием mydatabase, можно добавлять в нее таблицы и заполнять их данными. Например, вы можете добавить таблицу под названием users с тремя колонками: id, name и email. В этом случае колонка id выступит первичным ключом, который будет автоматически увеличиваться с каждой новой добавленной записью:

Создание таблицы с тремя колонками: id, name и email
Создание таблицы с тремя колонками: id, name и email

Также стоит отметить, что созданные таблицы можно изменять следующими командами:

  • Добавить новый столбец: 

ALTER TABLE users ADD age INT;

  • Удалить столбец:

ALTER TABLE users DROP COLUMN age;

  • Изменить тип данных в столбце:

ALTER TABLE users MODIFY COLUMN name TEXT;

DCL (язык управления доступом)

Этот язык нужен для назначения прав пользователям. Оператор GRANT предоставляет доступ, REVOKE отзывает разрешение, а DENY запрещает действия, имея приоритет над разрешениями.

Примеры простых запросов

Чтобы продемонстрировать доступность MySQL на цельном примере, давайте представим, что вы хотите создать базу данных для банка. Введите:

CREATE DATABASE BANK_DATABASE

И далее действуйте пошагово:

  • Чтобы начать работу с созданной базой, используйте:

USE BANK_DATABASE

  • Создайте таблицу для хранения информации о клиентах, их номерах счетов и балансах с помощью CREATE TABLE ACCOUNTS (client_name VARCHAR(200), account_number VARCHAR(20), balance DECIMAL(10,2)):

CREATE TABLE ACCOUNTS

  • Добавьте в нее данные из предварительно подготовленного файла через использование:

LOAD DATA LOCAL INFILE 'path/to/client_data.csv' INTO TABLE ACCOUNTS

  • Введите SELECT * FROM ACCOUNTS, чтобы показать информацию обо всех счетах на экране:

SELECT * FROM ACCOUNTS

Чем MySQL отличается от других СУБД

Давайте наглядно сравним основные показатели MySQL и двух других популярных СУБД: PostgreSQL и SQLite. 

 Как MySQL отличается от PostgreSQL и SQLite по ключевым показателям
Как MySQL отличается от PostgreSQL и SQLite по ключевым показателям

Как работать с MySQL в облаке

Использование MySQL в облаке позволяет значительно повысить эффективность работы на всех этапах — от миграции до дальнейшего развития и сопровождения базы данных. Например, с облачным сервисом для репликации можно не только ускорить процесс переноса и синхронизации, но и сократить расходы за счет оплаты только за фактически используемые ресурсы. А аренда облачного кластера MySQL вообще открывает перед бизнесом обширные возможности для: 

  • автоматического масштабирования и распределения нагрузки;

  • создания гибкой ролевой модели в системе; 

  • мониторинга и анализа производительности; 

  • импорта и экспорта данных — из других СУБД можно загружать данные в форматах CSV, SQL, JSON и многих других.

  • защиты данных.

Для управления базами данных в облаке тоже есть удобный инструмент — Relational Database Service for MySQL, который обеспечивает стабильность работы даже при высоких нагрузках: до 5 000 одновременных и свыше 170 000 запросов ежесекундно.

Коротко о MySQL

MySQL — современная и производительная СУБД, которая идеальна для проектов, где требуется быстродействующая, понятная и легкая в управлении система. Например, cегодня именно ее использует большинство CMS и веб-фреймворков. 

Среди главных преимуществ MySQL — ее способность обрабатывать большие объемы данных, легкость масштабирования и поддержка различных операционных систем. Система поддерживает полноценные транзакции и совместима с разными языками программирования.

При использовании MySQL в облаке бизнес получает массу возможностей: большую надежность и отказоустойчивость системы, автоматическое резервное копирование, геораспределенное хранение и дополнительные инструменты безопасности, например, сервис для аудита и защиты баз данных Database Security Service.

Содержание

  • Зачем нужны СУБ
  • MySQL и история ее развития
  • Принцип работы MySQL
  • Преимущества MySQL
  • Недостатки MySQL
  • Где используют MySQL
  • Как начать работать с MySQL
  • Чем MySQL отличается от других СУБД
  • Как работать с MySQL в облаке
  • Коротко о MySQL

Вам может понравиться