MySQL: серверы разные нужны, серверы разные важны!
[начало обзора продуктов и услуг компании MySQL AB]материал подготовил: Александр Лозовюк 29.06.2005
Не сомневаюсь, что многие разработчики уже используют в своих проектах сервер баз данных MySQL. Да, именно этот продукт вывел небольшую и уникальную Шведскую компанию в лидеры отрасли (заметим, не баз данных вообще, а в сфере СУБД для веб-приложений). Но в то же время спектр предлагаемых программных продуктов, решений и услуг сейчас гораздо шире и постоянно пополняется. Поэтому дальше опишем вкратце, что же сейчас предлагает компания MySQL AB совместно с партнерами в области баз данных — вполне возможно, что это именно то, что вы искали для нового проекта…
Основным продуктом является, без сомнения, сервер баз данных MySQL. Это очень быстрая, небольшого размера база данных, которая может использоваться в любых приложениях вплоть до серьезных корпоративных систем и критически важных хранилищ данных. В то же время MySQL является самой популярной платформой для создания веб-сайтов и веб-приложений любого уровня сложности — от простых страничек и каталогов статей до серьезных систем управления контентом для сопровождения сайтов с тысячами посетителей.
На самом деле все не так просто — есть несколько различных версий сервера MySQL, и иногда сложно разобраться, что именно выбрать. Фактически можно выделить 5 различных видов серверов (веток или релизов).
MySQL 4.1 — все сборки этой версии (имеющие номера, начиная с 4.1.хх, где хх означает версию, чем выше номер, тем новее) сейчас представляют собой стабильную систему (Generally Available (GA) release в терминах MySQL), которая рекомендована для реальной работы. В эту версию включены самые новые, но уже проверенные функции, добавлены поддержка новых типов данных (к примеру, географических координат, что позволяет использовать базу для хранения картографической информации), почти полная поддержка синтаксиса ANSI SQL 99, множества национальных кодировок или универсальной UTF, полнотекстовое индексирование и поиск, а также поддержка транзакций — при использовании таблиц в формате InnoDB or Berkeley DB (BDB).
MySQL 4.1 — самый последний стабильный релиз
Текущая версия имеет в зависимости от платформы номер 4.1.12 или 4.1.12-0/1. Для системы MS Windows текущий релиз обозначается как 4.1.12a. Кстати, не все так просто даже со сборками одной версии для одинаковой ОС — для платформы Win32 сейчас есть три варианта. Windows Essentials — это сборка с применением графического инсталлятора, который пошагово поможет вам корректно установить сервер и дополнительные компоненты, а после установки запустит удобный конфигуратор для точной настройки системы (это действительно очень и очень удобно, настоятельно рекомендую скачивать именно релизы, помеченные как Essentials, особенно если вы новичок и хотите разобраться в работе базы). Возможно, для опытных пользователей других СУБД наличие инсталлятора и покажется рядовым явлением, но для MySQL — это очень важный шаг вперед, о котором мы еще продолжим разговор в других статьях.
Обычная сборка, обозначаемая как Windows, имеет гораздо больший объем (37 Мб против 14 Мб Essentials) и включает только стандартный инсталлятор, который еще был в предыдущих версиях ветки 3.23. Он только распаковывает файлы и создает необходимые ярлыки, никакой настройки автоматически не производится. Этот вариант для более опытных пользователей, которые уже знают все тонкости работы сервера.
Последняя сборка, именуемая Without installer, — самая тривиальная: это обычный архив, который распаковывает все файлы в корневую директорию, и вы можете сразу приступить к работе с сервером, но все настройки, если вы не обновляете предыдущую версию, придется делать самому — вручную или с помощью утилит-настройщиков.
В зависимости
от операционной системы вам будет предложен различный список файлов на загрузку. В Windows-версии все опции включены в пакет изначально, для ОС семейства Linux дистрибутив с отдельными функциями может быть закачан отдельно. Например, если вам надо использовать возможность кластеризации и развернуть сервер MySQL на нескольких узлах, то необходимо скачать файлы в разделе NDB Cluster RPM — там есть и само ядро кластера, и отдельно утилиты для управления и настройки узлов кластера. Кстати, в текущих версиях кластеризация на платформе Win32 пока недоступна. Разработчики обещают эту возможность в версии 5.0, но пока в бета-версии 5.0.7 это еще не реализовано.
Внимательно выбирайте версию для своей платформы — MySQL традиционно доступна для различных систем (чуть не написал для всех — хотя список платформ/ОС очень большой и включает все известные системы и некоторые уже устаревшие, но еще работающие). Для каждого файла указываются платформа (Intel/AMD/Alpha/Power/PA-RISC/SPARC) и разрядность (32 бита, 64 бита, причем с разными наборами инструкций — IA64, EM64T, AMD64). Отдельно указывается версия ОС, а также, при необходимости, конкретные версии важнейших системных библиотек, от которых зависит дистрибутив.
Для разработчиков есть возможность скачать и исходный код всего сервера и библиотек — для этого в разделе MySQL 4.1 Downloads перейдите в рубрику Source downloads. Тут можно скачать исходные коды в форматах для различных операционных систем (исходный код одинаков, но различаются формат упаковки файлов и библиотека, необходимая для сборки).
MySQL версии 4.1.хх появилась относительно недавно, поэтому если вы используете, к примеру, хостинг на сервере провайдера, то там может быть установлена еще старая версия, хотя многие из хостеров уже понемногу переходят на новые.
Поддерживается и предыдущая версия, MySQL 4.0.хх, которая была переходным звеном от ветки 3.23.хх. Сейчас она также имеет статус Generally Available (GA), но не рекомендована для применения, так как все новые функции и обновления теперь включаются только в версию 4.1. Так что если вы выбираете с нуля необходимый сервер, то стоит сразу рассматривать версию 4.1. Текущая версия этой ветки — 4.0.24, для платформы Windows доступна только в виде архива и с простым инсталлятором, так что это еще один аргумент для перехода на новую версию.
Релиз Windows Essentials имеет графический инсталлятор и конфигуратор системы
Уже сейчас есть возможность попробовать и СУБД завтрашнего дня — для закачки доступна версия MySQL 5.0.7 в статусе бета. Это дальнейшее развитие линейки 4.1, и предназначена она только для разработчиков и тестеров. Если вы хотите проверить уже сейчас совместимость своих продуктов с новой версией — скачайте и опробуйте ее. Хотя разработка версии 5.0 еще далека от завершения, но работает она достаточно стабильно, из личного опыта тестирования могу сказать, что пока не встретил ни одного серьезного сбоя под нагрузкой (в среднем до миллиона запросов SELECT/INSERT/UPDATE в сутки на тестовом сервере).
5.0 — это СУБД завтрашнего дня, но доступная уже сегодня!
Для построения отказоустойчивых кластеров баз данных применяется специальная версия MySQL — MySQL Cluster. Ранние версии были в виде отдельных сборок, сейчас вся функциональность кластера входит в основную сборку ветки 4.1, хотя и доступна в виде отдельных пакетов — просто для уменьшения размера дистрибутива. Кластеризация доступна для платформ Linux/Solaris/MacOS. Это уже очень серьезная заявка на вступление в битву за рынок недорогих высокопроизводительных баз данных, в первую очередь для научных приложений, построения корпоративной инфраструктуры, электронной коммерции. Правда, пока еще процесс построения кластеров, даже простейших двухузловых, далек от простоты и совершенства и требует кропотливой ручной настройки и копания в конфигурационных файлах. Но если будет выпущена отдельная графическая утилита для настройки кластеров или будут внесены соответствующие изменения в стандартные средства управления (разработчики обещают включить поддержку управления кластерами в MySQL Administrator), то следует ожидать большого интереса к этой технологии.
Впрочем, если по каким-либо причинам вам необходимо использовать уже устаревшие версии СУБД, разработчики не оставили вас: на сайте в разделе Older releases можно загрузить предыдущие версии — от 3.20 до 3.23, которые все е
ще популярны у хостинговых компаний. Все версии доступны для различных платформ, но естественно, что оптимизация этих релизов под новейшие 64-разрядные процессоры не производилась.
Ну а в разделе Snapshots доступна всегда самая последняя версия в виде исходных кодов, причем не только новейших версий 4.1 и 5.0, но и предыдущей — 3.23, которая также имеет статус Generally Available.
MySQL Cluster — решение для отказоустойчивых кластеров
А если вам и этого мало, то в результате стратегического партнерства компании MySQL и производителя систем управления предприятием SAP вышла специальная версия сервера — MaxDB. Разработка самой компании SAP традиционно носит название SAP DB, и применялась она для развертывания продуктов этого производителя. Но для расширения применения решений с открытым исходным кодом (что интересно — не на уровне конечных решений, а именно на уровне базовой платформы, инфраструктуры для развертывания коммерческих приложений) компания решила в сотрудничестве с MySQL разрабатывать и поддерживать специальную версию — MaxDB by MySQL. Сейчас доступны две версии: 7.5.00, обозначенная как Generally Available, и 7.6 бета-версия. Это уже действительно очень серьезный продукт, ориентированный исключительно на коммерческое использование, но в то же время бесплатный — вы свободно можете загрузить как бинарные версии под любую платформу, так и исходные коды, а также весь дополнительный инструментарий. Доступны даже специальные тестовые приложения для тестирования производительности сервера БД — Regression Tests.
С одной стороны, версии 4.1 и будущая 5.0 самой MySQL уже имеют явную нацеленность на серьезное корпоративное применение, но им, к сожалению, не хватает именно того, что уже сейчас есть в распоряжении MaxDB: средств разработки, тестирования, множества утилит конфигурации и управления работой сервера, сертифицированности для применения совместно с популярными в бизнес-среде приложениями. Но постепенно и MySQL подтягивает свои продукты к такому уровню: применение инсталлятора в сборках Essentials и начало разработки утилит конфигурации и адаптации уже существующих баз данных — только первые шаги.
И, наконец, для отдельной категории продуктов есть специальная встраиваемая версия — Embedded MySQL, которая специально предназначена для применения в интернет-киосках, приставках и другой аппаратуре с ограниченными аппаратными возможностями. Одним из применений такой версии может стать распространение информационных систем на носителях CD/DVD, когда вся программная часть работает непосредственно с носителя без установки. Хотя такое можно сделать из обычной инсталляции MySQL, просто максимально оптимизировав ее конфигурацию.
К сожалению, нельзя рассказать про все аспекты работы такой огромной компании, как MySQL AB, в одной статье. Мы даже не коснулись коммерческого аспекта ее продуктов — тот же сервер БД доступен под двумя лицензиями — коммерческой (Classic и Pro) и свободной GNU GPL, причем в каждом конкретном случае следует отдельно рассматривать необходимость покупки лицензии. Но основная коммерция начинается с консалтинга и поддержки — тут у бизнес-модели MySQL AB есть чему поучиться… В следующих статьях мы рассмотрим фирменные утилиты для работы с базами и настройки сервера, познакомимся с предложениями компании в области консалтинга и лицензирования своей продукции.