СЭД

17 000 руб On-Prem

Цифровая трансформация

с ELMA365

IaaS

По запросу

По вашим правилам

Dedicated, SaaS/PaaS

Корпоративные мессенджеры

Стоимость по запросу

Тариф IVA One

IaaS

По запросу

ФЗ-187, КЗ-1 ФЗ-152

УЗ-1, ГОСТ 57580.1

СЭД

от руб.

Kubernetes

от 5.51 руб/час

Kubernetes as a Service

Отказоустойчивые кластеры, быстрый запуск, удобное управление

IaaS

от 490руб./мес

VMware / ПО РФ

SLA 99,95% Pay-as-you-go

  • IaaS

    По запросу

    По вашим правилам

    Dedicated, SaaS/PaaS

  • Корпоративные мессенджеры

    Стоимость по запросу

    Тариф IVA One

  • IaaS

    По запросу

    ФЗ-187, КЗ-1 ФЗ-152

    УЗ-1, ГОСТ 57580.1

  • СЭД

    от руб.

  • Kubernetes

    от 5.51 руб/час

    Kubernetes as a Service

    Отказоустойчивые кластеры, быстрый запуск, удобное управление

  • IaaS

    от 490руб./мес

    VMware / ПО РФ

    SLA 99,95% Pay-as-you-go

  • СЭД

    от руб.

  • ВКС

    Стоимость по запросу

    Тариф IVA MCU

  • Корпоративный портал

    от 500 000 руб.

    Российское решение

    аналог Microsoft Sharepoint

СЭД

от руб.

ВКС

Стоимость по запросу

Тариф IVA MCU

Корпоративный портал

от 500 000 руб.

Российское решение

аналог Microsoft Sharepoint

Операционные системы

5 280 руб.

BaseALT Альт Рабочая станция 10

архитектура 64 бит

Kubernetes

от руб.

BPM

17 000 руб On-Prem

Low-code BPM

для комплексной автоматизации

Low-code

от 833 руб.

Цифровая трансформация

с ELMA365

Азбука MySQL: практика, особенности, принципы функционирования

Безопасность Бизнес Телеком Интернет Цифровизация ИТ в банках ИТ в госсекторе Ритейл Маркет

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

MySQL появилась в результате необходимости адаптации mSQL для работы с таблицами, разработанными под более ранние способы хранения и управления, потерявшие актуальность в связи с ростом объемов данных и повышением скорости работы компьютеров.

Что касается названия, то точной информации о его возникновении нет: английская Википедия утверждает, что My (Мю) — это имя дочери Микаэля Видениуса, в русскоязычной Википедии дополнительно упоминается, что это простая приставка «мой». Как, например, «МойОфис». Однако, чуть ниже будут факты, которые говорят в пользу теории с именем дочери.

Возникновение MySQL

С 1995 г., в котором был первый выпуск, и до наших дней — последняя версия вышла 26 апреля этого года — СУБД прошла долгий и извилистый путь развития. Сама разработка стартовала в 1994 г. и велась компаниями Axmark и Widenius: в то время еще не было планов на широкое использование, и продукт разрабатывался сугубо для личного применения.

В качестве базы разработчики взяли mSQL и создали свой интерфейс, при этом сохранив совместимость API с mSQL — это позволило сторонним программистам быстро осваивать СУБД и переводить на нее свои проекты. Причиной для перевода служила GNU General Public License, по которой распространялось это новое программное обеспечение, в отличие от самой mSQL, которая была платной.

Вначале СУБД принадлежала компании MySQL AB, но в 2008 г. была приобретена Sun Microsystem, которую в свою очередь затем поглотил Oracle — ему все это обошлось в почти $7,5 млрд. На фоне этой покупки от MySQL отделился известный продукт, поддерживаемый первоначальными разработчиками MySQL.

MariaDB — это форк MySQL от одного из ее главных создателей. Она изначально начала разрабатываться Микаэлем Видениусом из-за опасений, вызванных покупкой Sun Microsystem компанией Oracle. Практически точная копия MySQL в самом начале, теперь это по-настоящему отдельный проект со своими особенностями и функционалом, но высокой совместимостью с MySQL. Maria — имя второй дочери Микаэля Видениуса, так что, скорее всего, MySQL тоже названа в честь дочери.

Лицензирование MySQL

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

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

Поддерживаемые операционные системы

С этой точки зрения MySQL есть чем похвастаться. Будет сложнее найти операционную систему, на которой она не поддерживается, чем перечислять все поддерживаемые. Отчасти это связано с популярностью, а отчасти — с почтенным возрастом. Поддерживаются даже неактуальные ОС, которые можно встретить только в музее или коллекциях, среди них есть и мобильные (Symbian), и совершенно раритетные (OS/2 или NetWare)

Поддержка Windows впервые появилась в 1998 г.: тогда это были современные Windows NT и 95. Сегодня СУБД можно установить на все актуальные версии Windows, а также огромное количество других операционных систем: eComStation, Linux, macOS, AIX, OpenVMS, UnixWare и другие. Процесс портирования продолжается и в настоящее время, поэтому шансы найти платформу, на которой бы еще не было порта этой СУБД, с каждым днем снижаются.

Немного технических деталей

Популярность и распространение под лицензией GNU GPL способствовали непрерывному и активному развитию и совершенствованию системы управления базами данных: обрастая значительным функционалом, она осталась одной из самых простых и понятных СУБД такого масштаба.

В MySQL нет ограничений на размер таблиц — он ограничен только ее типом. В целом, несмотря на то, что в настоящее время она позиционируется как решение для web-ресурсов или online-транзакций, при беглом сравнении с PostgreSQL — СУБД для серьезных аналитических решений — она практически ничем не уступает, если только вам не нужна узкоспециализированная аналитика. К примеру, есть и там, и там:

  • полнотекстовый поиск;
  • поддержка JSON;
  • обобщенные табличные выражения (Common Table Expression);
  • логическая репликация;
  • декларативное секционирование;
  • оконные функции;
  • полусинхронная репликация.

Список можно продолжать бесконечно, потому что постепенно происходит унификация.

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

MySQL может работать с разными типами таблиц:

  • InnoDB;
  • CSV;
  • MyISAM;
  • Archive;
  • Memory;
  • Blackhole;
  • Federated;
  • NDB/NDBCLUSTER;
  • Example;
  • Merge.

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

Распространение MySQL

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

MySQL проста в установке и настройке, имеет большое количество инструментов, обеспечивающих работу с СУБД посредством графического интерфейса, что позволяет полноценно ее использовать, не изучая консольные команды. Среди популярных: MySQL Workbench, Database Workbench, Adminer, phpMyAdmin, DBeaver, SQLBuddy и другие.

Кроме этого, она включена в популярные сборки серверного программного обеспечения LAMP/WAMP/XAMPP и прочих. Ее используют системы управления контентом (CMS) phpBB, Joomla, Drupal, WordPress. Крупные корпорации, такие как Twitter, Flickr, YouTube, MediaWiki, задействуют ее в своих проектах.

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

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

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

Популярность — в любой момент вы можете зайти на один из множества форумов и задать вопрос. В 99% случаев не придется делать даже этого: все вопросы уже разобраны, решения найдены, ответы получены. Большое русскоязычное сообщество не оставит в беде начинающего пользователя.

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

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

Итоги

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

К преимуществам можно отнести поддержку множества ОС и непрерывное развитие, в ходе которого постоянно добавляются новые возможности.

Валерия Макарова

Короткая ссылка