Стабильный выпуск СУБД MariaDB 10.2
После полутора лет разработки и пяти предварительных выпусков сформирован первый стабильный релиз новой ветки СУБД MariaDB 10.2, в рамках которой развивается ответвление от MySQL, сохраняющее обратную совместимость и отличающееся интеграцией дополнительных движков хранения и расширенных возможностей. Развитие MariaDB курирует независимая организация MariaDB Foundation в соответствии с полностью открытым и прозрачным процессом разработки, не зависящим от отдельных вендоров. MariaDB поставляется вместо MySQL во многих дистрибутивах Linux (RHEL 7, SUSE 12, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian 9) и внедрен в таких крупных проектах, как Wikipedia, Google Cloud SQL и Nimbuzz.
Ключевые улучшения MariaDB 10.2:
- Добавлена экспериментальная поддержка движка хранения MyRocks, разработанного Facebook на базе системы хранения RocksDB, оптимизированной для Flash-накопителей. В хранилище MyRocks применяются страницы данных плавающего размера, позволяющие избежать выравнивания по фиксированной границе блока, и модель хранения данных в форме лога (Log Structured Merge Trees), допускающая только дополнение (чистка производится сборщиком мусора);
- Добавлена поддержка оконных функций, задаваемых ключевым словом OVER и позволяющих совершить вычисление над набором строк, связанных с текущей строкой. По аналогии с агрегатными функциями оконные функции позволяют обратиться к другим строкам в процессе обработки результата запроса, но в отличие от агрегатных функций они не группируют результат в одну строку;
- Поддержка общих табличных выражений (выражение "WITH") и рекурсивных общих табличных выражений ("WITH RECURSIVE"). Секцию WITH можно использовать для определения подзапросов как локальных временных таблиц, на которые можно много раз ссылаться в запросе. "WITH RECURSIVE" позволяет обращаться к собственному результату, например, можно организовать обход дерева в процессе выполнении запроса;
- Добавлено выражение "CONSTRAINT... CHECK" в блоке "CREATE TABLE" для задания ограничений столбца;
- Реализована возможность указания выражений в блоке DEFAULT, например "b int DEFAULT (a+1)". Обеспечена поддержка указания значений DEFAULT для полей BLOB и TEXT;
- Хранилище InnoDB обновлено до выпуска из состава MySQL 5.7.18 и задействовано по умолчанию (ранее по умолчанию предлагалось хранилище XtraDB). В InnoDB добавлена поддержка пространственных индексов (spatial index);
- Добавлено выражение "SHOW CREATE USER", показывающее полное выражение "CREATE USER", использованное для создания указанного пользователя;
- Для выражения "CREATE USER" реализованы опции для ограничения потребления ресурсов и настройки tls/ssl. Например, теперь можно ограничить максимальное число запросов или соединений в час;
- Представлено новое выражение "ALTER USER", позволяющее внести изменения в учетную запись существующего пользователя;
- Сняты многие ограничения для виртуально вычисляемых столбцов;
- Добавлена поддержка выражения "EXECUTE IMMEDIATE" для запуска динамического SQL-выражения, созданного на лету;
- В оператор PREPARE добавлена возможность использования большинства выражений;
- Добавлены функции для работы с данными в формате JSON;
- Добавлен плагин аутентификации, использующий алгоритм ed25519 для хранения паролей;
- В состав сборок для Windows, CentOS, RHEL и Fedora добавлен плагин для расшифровки ключей, используемых в Amazon Web Services (AWS) Key Management Service (KMS), для их последующего использования для шифрования данных в БД;
- Библиотека wsrep, используемая для организации синхронной multi-master (active-active) репликации Galera, обновлена до выпуска 25.3.20;
- Обеспечено формирование пакетов для Ubuntu 17.04;
- В mysqldump добавлена опция "--add-drop-trigger", воспроизводящая функциональность MySQL 5.6 по добавлению в SQL-дамп выражения для удаления триггера перед его созданием;
- Добавлена поддержка OpenSSL 1.1 и LibreSSL;
- Добавлены переменные innodb_deadlock_detect и innodb_stats_include_delete_marked для отключения система определения взаимных блокировок и учета записей, помеченных как удаленные, при расчете статистики;