Что нового в MySQL 8.0

13:07 23.10.2017   |  Сердар Егулалп |  InfoWorld, США

Рубрика Технологии |   460 прочтений



В следующую версию популярной СУБД с открытым кодом войдут улучшенная поддержка Unicode, JSON и управления документами, а также долгожданные оконные функции.

 

Для популярной СУБД с открытым кодом MySQL, ставшей стандартным элементом многих стеков веб-приложений, выпущен первый вариант Release Candidate версии 8.0.

В MySQL 8.0 появятся следующие возможности:

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

В версии 8.0 MySQL последовательная нумерация нарушена (предыдущая версия имела номер 5.5), поскольку от 6.0 решено было отказаться, а 7.0 была зарезервирована для кластерной версии MySQL.

Ожидаемая дата выпуска MySQL 8.0

Разработчики MySQL предпочитают не называть конкретную дату выпуска MySQL 8.0. Их политика заключается в том, чтобы «новый релиз появлялся через каждые полтора-два года». На текущий момент последней версией является MySQL 5.7, выпущенная 21 октября 2015 года, так что MySQL 8.0, скорее всего, стоит ждать в конце октября 2017 года.

Поддержка Unicode

MySQL

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

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

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

Оконные функции

Во многих других реализациях языка SQL поддерживаются оконные функции, позволяющие выполнять агрегированные вычисления над множеством строк, сохраняя при этом в результатах запроса доступ к каждой отдельно взятой строке. Конечно, в MySQL такую задачу можно решить и без поддержки оконных функций, но это будет медленно и неудобно. Разработчики добавили в MySQL 8.0 оконные функции, реализованные с помощью стандартной конструкции SQL OVER. Аналогичным образом эти функции представлены и в конкурирующих продуктах, в том числе в PostgreSQL.

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

Улучшение работы с документами и JSON

Поддержка JSON появилась в версии MySQL 5.7, сделав MySQL конкурентоспособной в соперничестве с СУБД NoSQL, которые работали с JSON изначально. В MySQL 8.0 поддержка JSON была расширена: производительность выросла, появились функции, позволяющие извлекать из запроса JSON диапазоны (как это сделано в запросе типа top N), а также новые агрегированные функции, объединяющие в запросе структурированные данные MySQL и полуструктурированные JSON.

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

Среди других изменений в MySQL 8.0 отметим следующие.

  • Расширение возможностей управления заблокированными строками с помощью ключевых слов SKIP LOCKED и NOWAIT. Конструкция SKIP LOCKED позволяет пропускать во время выполнения операции заблокированные строки; опция NOWAIT при обнаружении заблокированной строки приводит к выдаче сообщения об ошибке.
  • MySQL автоматически перераспределяет общий объем доступной памяти, оптимизируя использование развернутых виртуальных машин.
  • Индексы могут быть исключены из оптимизатора запросов вручную с помощью конструкции invisible index. Таким образом, в случае необходимости пользователь имеет возможность самостоятельно определить, стоит ли задействовать тот или иной индекс.

Откуда загрузить MySQL 8.0

В настоящее время можно загрузить бета-версии MySQL 8.0 для Windows, macOS, нескольких вариантов Linux, FreeBSD и Solaris. Исходный код также доступен для загрузки. Чтобы найти нужные ссылки, следует перейти на сайте MySQL к разделу для разработчиков и открыть вкладку Development Releases.


Теги: Open Source СУБД MySQL
На ту же тему: