Компания Oracle выпустила обновленный релиз СУБД MySQL под номером 5.6, включив в него ряд разработок, которые делают эту технологию более конкурентоспособной на фоне набирающих популярность NoSQL-решений, таких как MongoDB, Apache Cassandra или Riak. К ключевым улучшениям можно отнести поддержку средств полнотекстового поиска, возможность доступа к данным через memcached API, увеличение производительности работы при интенсивной записи данных, а также увеличение масштабируемости при обработке большого числа одновременных запросов.
Дуг Хеншен из InformationWeek полагает, что из всего длинного списка обновлений главным образом именно возросшая масштабируемость MySQL 5.6 должна привлечь внимание потенциальных пользователей баз данных NoSQL. Еще одно новшество версии 5.6 — возможность исполнения DDL-операций (Data Definition Language): администраторы смогут производить операции, связанные со сбросом схемы, добавлением или удалением столбцов данных или переименованием столбцов, без отключения СУБД. Ранее подобные функции были доступны только в NoSQL-продуктах.
“Это действительно значительное улучшение, так как теперь пользователи MySQL 5.6 смогут избежать всех простоев, связанных с изменением схем”, — сказал вице-президент MySQL Engineering Томас Улин в интервью InformationWeek.
Еще одно нововведение MySQL 5.6, которое подобно технологии DDL способно заинтересовать пользователей NoSQL-решений, — возможность прямого доступа к данным через API Memcached. Сама по себе реляционная СУБД MySQL 5.6 не использует Memcached, но ИТ-администраторы могут обеспечить работу сторонних приложений с MySQL через очень быстрый движок Memcached. Oracle заявила, что в сравнении с другими типами запросов, выборка данных посредством Memcached происходит до девяти раз быстрее, так как СУБД не осуществляет парсинг (синтаксический анализ) SQL-запросов.
Говоря о недостатках NoSQL, Улин полагает, что даже написание простых запросов для таких систем требует дополнительного кодирования, и этот код не всегда является простым. Хеншен высказал некоторые сомнения по этому поводу, утверждая, что NoSQL-решения уже давно обладают возможностями базовых запросов, в то время как язык SQL за более чем 30 лет развития так и не достиг глубины и масштабируемости нереляционных баз данных.
С аппаратной точки зрения новинка теперь может работать на 48-ядерных серверах против 32-ядерных в MySQL 5.5. Улин сказал, что для этого MySQL 5.6 была переписана таким образом, чтобы устранить медлительность при обработке потоков, минимизировать блокировки, обеспечить адаптивный сброс буферов и улучшить логику организации одновременного доступа к данным.
Из прочих отличий MySQL 5.6 стоит отметить оптимизацию подзапросов (вложенных запросов), которые в ином случае выполняются слишком долго. Диагностика задержек стала более мощной за счет расширенного запроса EXPLAIN. Обновленная СУБД также поддерживает индексацию для полнотекстовых запросов, так что поиск по крупным полям БД можно выполнять без полного сканирования всей таблицы. Была повышена эффективность оптимизатора запросов, процесса выбора результирующего набора значений, сортировки и выполнения запроса. Новые оптимизации Index Condition Pushdown (ICP) и Batch Key Access (BKA) позволяют увеличить пропускную способность выполнения некоторых запросов в 280 раз.
“Мы находимся в постоянном диалоге с нашими клиентами и пользователями, они показали нам, что существует спрос на NoSQL-технологии. Oracle надеется, что MySQL сможет предложить NoSQL-скорости и соответствующую производительность, сохранив свою реляционную сущность, — сказал Улин. — Мы можем объединить лучшее из двух миров, вам не обязательно использовать две базы данных”.
Команде Oracle MySQL хочется надеяться, что все эти обновления будут поощрять текущих пользователей отказаться от NoSQL баз данных, но, как полагает Хеншен, MySQL еще предстоит доказать, что она более масштабируемая и управляемая, чем NoSQL-альтернативы, особенно это касается обработки больших данных. Гибкие, масштабируемые, обладающие необходимой вычислительной мощностью и возможностями анализа любых видов данных (по мнению Хеншена, это как раз то, чего лишены реляционные СУБД, так как они просто не поспевают за изменчивыми данными) NoSQL базы данных, несомненно, будут и в дальнейшем привлекательными решениями, считает Хеншен.
В связи с данным релизом становится более интересным соперничество MySQL и MariaDB, которая в последнее время вытесняет MySQL из дистрибутивов Linux. На данный момент это произошло в Fedora и OpenSUSE.
Oracle MySQL 5.6.10 community edition распространяется на условиях лицензии GPL и доступна для Windows, Debian, SUSE Linux Enterprise Server, Red Hat Linux, Oracle Linux, Solaris и Mac OS X.