После полутора лет разработки и пяти предварительных выпусков сформирован первый стабильный релиз новой ветки СУБД 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), допускающая только дополнение (чистка производится сборщиком мусора). В процессе выполнение запросов в несколько раз сокращается число операций случайного чтения/записи, что приводит к увеличению производительности по сравнению с InnoDB на 20-30% на SDD и до 6 раз на НЖМД при нагрузке с большим числом операций случайной записи. Кроме того, MyRocks позволяет на 50% сократить размер БД по сравнению со сжатым хранилищем InnoDB и в 3.5 раза по сравнению с InnoDB без применения сжатия. Из недостатков MyRocks можно отметить отсутствие поддержки внешних ключей и полнотекстовых индексов;

  • Добавлена поддержка оконных функций, задаваемых ключевым словом 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 и задействовано по умолчанию (ранее по умолчанию предлагалось ответвление от InnoDB — XtraDB, смысл использования которого потерялся после того, как в InnoDB реализовали большинство основных возможностей 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), для их последующего использования для шифрования данных в БД;
  • Появилась возможность привязки нескольких разных триггеров к одному событию;
  • Добавлена поддержка отложенной репликации, при которой состояние slave-сервера на заданный промежуток времени отстаёт от master-сервера;
  • Переработана реализация выражения ANALYZE TABLE, которое теперь не блокирует таблицу во время сбора статистики;
  • Библиотека wsrep, используемая для организации синхронной multi-master (active-active) репликации Galera, обновлена до выпуска 25.3.20;
  • Обеспечено формирование пакетов для Ubuntu 17.04;
  • В mysqldump добавлена опция «—add-drop-trigger», воспроизводящая функциональность MySQL 5.6 по добавлению в SQL-дамп выражения для удаления триггера перед его созданием;
  • Добавлен скрипт mysqlbinlog для организации непрерывного бэкапа бинарного лога;
  • Добавлена поддержка OpenSSL 1.1 и LibreSSL;
  • Добавлены переменные innodb_deadlock_detect и innodb_stats_include_delete_marked для отключения система определения взаимных блокировок и учёта записей, помеченных как удалённые, при расчёте статистики;
  • Добавлена переменная read_binlog_speed_limit, задающая ограничение скорости с которой slave-сервер читает бинарный лог master-сервера;
  • Удалена старая клиентская библиотека, поставляемая под лицензией GPL, на смену которой пришла новая библиотека, имеющая лицензию LGPL.

Источник

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here