Стабільний випуск СУБД MariaDB 10.5

Alex Alex 25 червня 2020
Стабільний випуск СУБД MariaDB 10.5

Після року розробки та чотирьох попередніх випусків підготовлений перший стабільний реліз нової гілки СУБД MariaDB 10.5, у рамках якої розвивається відгалуження від MySQL, зберігає зворотну сумісність і відрізняється інтеграцією додаткових плагінів для зберігання даних і розширених можливостей. Підтримка нової гілки здійснюватиметься 5 років, до червня 2025 року.

Розвитком MariaDB займається незалежна організація MariaDB Foundation відповідно до повністю відкритого та прозорого процесу розробки, не залежного від окремих виробників. MariaDB поставляється замість MySQL в багатьох дистрибутивах Linux (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) та впроваджено у таких великих проєктах, як Вікіпедія, Google Cloud SQL і Nimbuzz.

Ключові покращення MariaDB 10.5:

  • Додано рушій зберігання S3, що дозволяє розміщувати таблиці MariaDB в Amazon S3 або будь-якому іншому публічному або приватному хмарному сховищі, підтримує API S3. Підтримується розміщення в S3 як звичайних, так і секціонованих (розбитих на частини) таблиць. При розміщенні в хмарі секціонованих таблиць вони можуть безпосередньо використовуватися у тому числі з іншого сервера, що має доступ до сховища S3.
  • Додано рушій зберігання ColumnStore, який зберігає дані в прив'язці до стовпців і використовує масово-паралельну розподілену архітектуру. Рушій заснований на напрацюваннях MySQL-сховища InfiniDB і призначений для організації обробки та виконання аналітичних запитів над великими масивами даних (Data Warehouse). ColumnStore зберігає дані не порядково, а з розбивкою по стовпцях, що дозволяє оптимізувати виконання групування по стовпцях з БД великого розміру, що включає петабайти даних. Підтримується лінійне масштабування, зберігання даних в стислому вигляді, вертикальне і горизонтальне секціонування, ефективне виконання конкурентних запитів.
  • Всі виконувані файли, що починаються зі слова "mysql" перейменовано з використанням слова "mariadb". Старі імена збережені у формі символічних посилань.
  • Додано новий тип даних INET6 для зберігання адреси IPv6.
  • Виконана робота по розподілу привілеїв на дрібніші складові. Замість загального привілею SUPER запропонована серія з вибіркових привілеїв "BINLOG ADMIN", "BINLOG REPLAY", "CONNECTION ADMIN", "FEDERATED ADMIN", "READ_ONLY ADMIN", "REPLICATION MASTER ADMIN", "REPLICATION SLAVE ADMIN" і "SET USER".
  • Привілей "REPLICATION CLIENT" перейменований в "BINLOG MONITOR", а вираз "SHOW MASTER STATUS" в "SHOW BINLOG STATUS". Перейменування уточнює поведінку і не пов'язане з політкоректністю, проєкт не відмовляється від термінів master/slave і навіть додав нові привілеї "MASTER ADMIN" і "SLAVE ADMIN". При цьому в SQL вираження доданий новий ключ "REPLICA", що є синонімом "SLAVE".
  • Для деяких виразів змінено привілеї, необхідні для їх виконання. "SHOW BINLOG EVENTS" тепер вимагає прав "BINLOG MONITOR" замість "REPLICATION SLAVE", "SHOW SLAVE HOSTS" вимагає привілеї "REPLICATION MASTER ADMIN" замість "REPLICATION SLAVE", "SHOW SLAVE STATUS" вимагає прав "REPLICATION SLAVE ADMIN" або "SUPER" замість "REPLICATION CLIENT", "SHOW RELAYLOG EVENTS" вимагає прав "REPLICATION SLAVE ADMIN" замість "REPLICATION SLAVE".
  • Додано конструкції "INSERT ... RETURNING" і "REPLACE ... RETURNING", повертають список вставлених/замінених стік у формі, так якби значення поверталися при використанні виразу SELECT (за аналогією з "DELETE ... RETURNING").
    
     INSERT INTO t2 VALUES (1,'Dog'),(2,'Лев'),(3,'Тигр'),(4,'Леопард') 
     RETURNING id2,id2+id2,id2&id2,id2||id2;
    +-----+---------+---------+----------+
     | id2 | id2+id2 | id2&id2 | id2||id2 |
    +-----+---------+---------+----------+
     | 1 | 2 | 1 | 1 |
     | 2 | 4 | 2 | 1 |
     | 3 | 6 | 3 | 1 |
     | 4 | 8 | 4 | 1 |
    +-----+---------+---------+----------+
    
  • Додано вираження "ALL EXCEPT" і "INTERSECT ALL" для виключення/доповнення результату певним набором значень.
  • З'явилася можливість вказівки коментарів всередині блоків "CREATE DATABASE" і "ALTER DATABASE".
  • Додано конструкції для перейменування індексів і стовпців "ALTER TABLE ... RENAME INDEX / KEY" та "ALTER TABLE ... RENAME COLUMN".
  • В операції "ALTER TABLE" і "RENAME TABLE" додана підтримка умови "IF EXISTS" для виконання операції тільки при існуванні таблиці;
  • Для індексів в "CREATE TABLE" реалізований атрибут "VISIBLE".
  • Додано вираз "CYCLE" для виявлення рекурсивних циклів CTE.
  • Додано функції JSON_ARRAYAGG і JSON_OBJECTAGG для повернення масиву або об'єкта JSON зі значеннями зазначеного стовпця.
  • Додано службові інформаційні таблиці (THREAD_POOL_GROUPS, THREAD_POOL_QUEUES, THREAD_POOL_STATS і THREAD_POOL_WAITS) для пулу потоків (thread_pool).
  • Вираз ANALYZE розширено показом часу, що витрачається на перевірку блоку WHERE і виконання допоміжних операцій.
  • В оптимізаторі обробки діапазонів враховані ознаки "IS NOT NULL"
  • Істотно скорочений розмір тимчасових файлів, використовуваних при сортуванні з типами VARCHAR, CHAR і BLOB.
  • Бінарний лог, що використовується для організації реплікації, додані нові поля з метаданими, включаючи Primary Key, Column Name, Character Set і Geometry Type. В утиліті mariadb-binlog і командах "SHOW BINLOG EVENTS" та "SHOW RELAYLOG EVENTS" забезпечений показ прапорів реплікації.
  • Конструкція DROP TABLE тепер надійно видаляє таблиці, що залишаються в рушії зберігання, навіть при відсутності файлів ".frm" або ".par".
  • Реалізований апаратно прискорений варіант функції crc32() для CPU AMD64, ARMv8 і POWER 8.
  • Змінені деякі параметри за замовчуванням. Параметр innodb_encryption_threads збільшений до 255, а значення max_sort_length збільшено з 4 до 8.
  • Представлені численні оптимізації продуктивності рушія InnoDB.
  • В механізм синхронної multi-master реплікації Galera додана повна підтримка GTID (Global Transaction ID), єдиних для всіх вузлів кластера ідентифікаторів транзакцій.
  • Здійснений перехід на нову гілку бібліотеки PCRE2 (Perl Compatible Regular Expressions), замість класичної серії PCRE 8.x.
  • Запропоновано нові версії обв'язок для підключення до СУБД MariaDB і MySQL з програм на мові Python і C: MariaDB Connector/Python 1.0.0 і MariaDB Connector/C 3.1.9. Обв'язка для Python відповідає Python DB API 2.0, написана мовою Сі та використовує для підключення до сервера бібліотеки Connector/C.

Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.