Поначалу околосерверная терминология многих вводит в ступор. С ходу непонятно, что из представленного набора букв — технология, а что является названием какой-нибудь утилиты. Хороший пример – MySQL. Инструмент, который кто-то считает нарицательным для баз данных, а кто-то называет сервером.
Разберемся, что такое MySQL-сервер, как он работает и почему о нем так много говорят.
Краткое описание MySQL
Это реляционная система управления базами данных. Таково официальное определение.
MySQL создавалась силами шведских разработчиков из одноименной компании в 1994 году. Тогда и состоялся ее релиз под свободной лицензией. Позже компанию поглотила Oracle. MySQL распространяется бесплатно и входит в стандартный набор утилит LAMP для разработки сайтов на базе Linux.
MySQL — не единственная в своем роде. Подобных программ хватает. Но системы управления базами данных частенько ассоциируют конкретно со шведской разработкой. Доходит до того, что серверы баз данных с любым ПО называют MySQL. Все благодаря ее популярности и признанности среди крупных корпораций. Ее используют в Facebook, YouTube, Google и тысячах других IT-компаний.
MySQL — это популярная СУБД с моделью «клиент-сервер». Поэтому часто можно услышать от других разработчиков словосочетание «MySQL-сервер». Это действительно сервер, только сервер базы данных. Он создан для обеспечения доступа к данным для других сервисов и приложений.
Что такое база данных?
В нашем случае данные — это файлы, а база — место, где они хранятся. Данные могут принимать любой облик.
Представьте, что вы сделали плейлист в Spotify и добавили туда новый трек. Плейлист будет базой, а добавленная песня — данными. Каждая композиция, появившаяся в уже готовом плейлисте, станет частью существующей базы данных. Так она будет пополняться.
Таких баз может быть много. Например, интернет-магазин, продающий гитары, тоже оперирует базами данных. В них хранятся инструменты из каталога, отсортированные по заранее продуманным критериям (производитель, количество струн и т.п.).
Получается, что базы могут быть многоуровневыми и делиться на различные категории (разделы каталога в случае с магазином). Так формируются взаимосвязи между разными элементами базы данных, появляется структура. Отсюда и термин «реляционная» – он намекает на зависимость элементов друг от друга.
Так что база данных — это набор структурированных данных с выстроенными между ними «взаимоотношениями» (делением на категории, к примеру).
Визуально она представляет собой таблицу с тысячами элементов (ссылками, файлами, отрывками текста и т.п.). Чтобы этим добром управлять, необходимо как-то обозначить таблицы и научиться ими управлять. Тут и пригодится SQL.
А что такое SQL?
Эта аббревиатура расшифровывается как Structured Query Language, что в переводе означает «язык структурированных запросов».
По версии разработчиков, приставка My в MySQL появилась из-за дочери создателя системы Микаэля Видениуса. Ее зовут Мю, в финском языке это пишется как My. Не зная этого факта, на западе произносили [мю] как [май].
SQL – это стандартизированный язык, использующийся для взаимодействия с базой данных. С помощью него, собственно, и получают доступ к информации, хранящейся в таблицах MySQL. Язык делится на три части:
- Синтаксис, помогающий решать семантические вопросы языка. То есть идентифицировать отдельные компоненты базы данных.
- Синтаксис для управления данными в базе, который помогает обновлять и искать информацию.
- Синтаксис, позволяющий выдавать пользователям права на отдельные единицы данных в базе.
Другие СУБД используют такой же язык структурированных запросов. Будь то PostgreSQL или Microsoft SQL. Это бренд. Но это не касается того, как эти системы взаимодействуют с данными. Отличия все же есть.
Основные задачи, выполняемые SQL
Structured Query Language появился в 1970 году и быстро заменил собой аналогичные, но устаревшие VISAM и ISAM. Они были нужны для управления данными.
В их «обязанности» входило:
- Извлечение запрашиваемой информации из ячеек базы данных по запросу клиента.
- Разного рода манипуляции с данными, включая добавление новых элементов в таблицу, удаление, изменение существующей в базе информации и ее сортировку. Сюда же относят и некоторые другие редко используемые операции.
- Идентификация данных из базы. Я уже упомянул это выше. Речь идет об определении отдельных компонентов. К примеру, идентификации чисел в тексте как целых чисел для соответствующей их обработки. Также процесс идентификации необходим реляционной сущности MySQL для определения взаимоотношений между разными слоями таблиц в базе данных.
- Управление данными.
- Защита и шифрования информации в таблицах.
SQL закрывает все 5 аспектов.
Принцип работы MySQL-серверов
Он такой же, как в любых клиент-серверных моделях. Одно устройство делает запрос, а второе отвечает. Запрашивающих может быть больше одного, все зависит от сервера, сети и поставленных задач.
Технически немного иные, но по своей сути идентичные процессы происходят в среде MySQL:
- Система создает базу данных для хранения информации (ее сортировки, идентификации и т.п.).
- Клиенты (другие компьютеры в сети) подают запросы к базе с помощью специфичных для SQL команд.
- Серверное приложение обрабатывает запрос и выдает ответ клиенту (выдает запрашиваемые данные).
Для взаимодействия с MySQL-сервером используются соответствующие утилиты. Некоторые работают только в командной строке. Некоторые награждены графическим интерфейсом. Популярные решения – WorkBench, SequelPro, SQL Studio, TablePlus. Правда, большинство вебмастеров предпочитает phpMyAdmin, так как та входит в LAMP и работает в браузере.
Как создать базу данных на хостинге?
У хостинг-провайдеров встречаются панели управления со встроенной функцией создания баз данных. В Timeweb такая есть. Чтобы создать на хостинге базу данных, надо открыть раздел «Базы данных MySQL» и кликнуть по кнопке «Создание новой базы данных». Система попросит указать параметры, имя пользователя и пароль администратора для авторизации.
Что касается создания БД на VDS, то можно воспользоваться панелью управления сервером. Например, ISPmanager.
В ISPmanager базы создаются так:
- Открываем панель управления.
- Переходим в пункт меню «Инструменты».
- Кликаем по подпункту «Базы данных».
- Нажимаем на кнопку «Создать».
- Указываем параметры будущей базы (логин, пароль и т.п.).
- Сохраняем данные, кликнув по кнопке ОК.
Почему MySQL так популярна?
Если взглянуть на статистику, то по частоте использования и упоминания в сети MySQL проигрывает только решению от компании Oracle. Из-за чего так происходит? Конечно же, из-за ее преимуществ над существующими конкурентами.
На швейцарскую систему полагаются IT-корпорации ранга Facebook, потому что она:
- Гибкая и несложная в использовании. На создание и поддержку БД уходит меньше времени. Требуется меньший уровень компетенции для того, чтобы полноценно работать с MySQL и реализовывать весь ее потенциал.
- Имеет открытый исходный код, поэтому легко поддается модификации, и за это не нужно кому-то платить.
- Поддерживается компанией Oracle и сообществом разработчиков, выступающих за развитие opensource-приложений.
- Работает шустрее конкурентов. Внутренняя структура MySQL позволяет ей разгребать завалы из таблиц и строк за секунды. Независимо от специфичности связей между данными и их количества, сервер обрабатывает запросы любой сложности быстрее других БД.
- Стала именем нарицательным и вместе с этим неким стандартом в индустрии. Компании ищут сотрудников, умеющих работать с MySQL, интернет пестрит инструкциями по работе как раз с MySQL-серверами.
- Может похвастаться высоким уровнем защиты данных благодаря системе выдачи прав и продвинутой системе управления пользователями. А еще тут есть верификация на базе хостинга и шифрование.
Подробнее о безопасности MySQL
Защита данных обеспечивается двумя подсистемами: таблицей привилегий и плагинами безопасности.
Первая нужна, чтобы оградить часть данных от определенной группы пользователей. Она вынуждает клиентов, делающих запросы, авторизоваться в системе, дабы та могла убедиться в праве клиента на получение запрашиваемой информации. То есть управлять базой в полной мере может ограниченное число лиц. При желании можно запретить определенному кругу лиц возможность вносить в таблицы любые изменения или удалять из них данные, но при этом оставить за ними возможность добавлять новые единицы данных в существующую базу.
Ближайший пример такой системы — права доступа в WordPress и DataLife Engine.
Плагины безопасности расширяют базовые механизмы защиты целостности данных. Например, создают на сервере более строгую политику создания паролей или дополнительное хранилище для конфиденциальной информации.
Недостатки MySQL
Не обошлось без как минимум 4 увесистых ложек дегтя в бочку обсуждаемой СУБД.
- MySQL не всегда ведет себя стабильно. По данным популярного хостинга Digital Ocean, шведская СУБД вовсе не так надежна, как о ней говорят. Часть распространенных задач нередко завершаются ошибкой.
- Выше я писал, что MySQL — производительная. Да, это так. Даже при работе с большим объемом данных. Но не с большим объемом одновременно выполняемых задач. При их увеличении наблюдаются заметные простои и замедления. Разработчики отмечают, что СУБД ведет себя куда послушнее и предсказуемо в небольших масштабах и при работе с минимальным количеством операций типа «запись/чтение».
- Развитие MySQL замедлилось с тех пор, как ее купила Oracle. Компания не тратит время и ресурсы на развитие приобретенного продукта. При этом патчи, предлагаемые независимыми разработчиками, отвергает.
- Легкость системы в целом достигается за счет минимизации доступных по умолчанию функций. И даже базовые функции зависимы от сторонних разработок. Приходится «догонять» за счет установки расширений.
Выводы
Популярность MySQL — не случайность. Она действительно будет идеальна для решения большинства задач, пока вы не поймете, что вам нужно что-то помощнее. Либо она навсегда останется для вас единственной и неповторимой, как и для миллиона вебмастеров по всей планете.
Комментарии