MariaDB 10.5 stable release

After a year of development and four pre-releases prepared by first stable release of a new DBMS branch MariaDB 10.4, within which a branch from MySQL is being developed that maintains backward compatibility and different integration of additional storage engines and advanced features. The new branch will be supported for 5 years, until June 2025.

MariaDB development is overseen by the independent MariaDB Foundation, following a fully open and transparent development process independent of individual vendors. MariaDB is shipped in place of MySQL in many Linux distributions (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) and has been implemented in large projects such as Wikipedia, Google Cloud SQL и Nimbuzz.

Key improvements MariaDB 10.5:

  • Added storage engine S3, which allows you to host MariaDB tables in Amazon S3 or any other public or private cloud storage that supports the S3 API. The placement in S3 of both regular and partitioned (partitioned) tables is supported. When hosting partitioned tables in the cloud, they can be directly used, including from another server that has access to S3 storage.
  • Added storage engine ColumnStore, which stores data in a column-bound fashion and uses massively parallel distributed architecture. The engine is based on the developments of the MySQL storage InfiniDB and is designed to organize the processing and execution of analytical queries on large data arrays (Data Warehouse).
    ColumnStore does not store data by row, but by column, which allows you to optimize the performance of grouping by columns from a large database that includes petabytes of data. Linear scaling, compressed data storage, vertical and horizontal partitioning, efficient execution of competing requests are supported.

  • All executable files starting with the word "mysql" have been renamed to use the word "mariadb". The old names are preserved as symbolic links.
  • Added new data type INET6 to store IPv6 addresses.
  • Work has been done on the division of privileges into smaller components. Instead of the general privilege SUPER, a series of selective privileges "BINLOG ADMIN" is proposed,
    BINLOG REPLAY,
    "CONNECTION ADMIN",
    "FEDERALATED ADMIN",
    "READ_ONLY ADMIN",
    REPLICATION MASTER ADMIN,
    "REPLICATION SLAVE ADMIN" and
    SET USER.

  • The "REPLICATION CLIENT" privilege has been renamed to "BINLOG MONITOR" and the expression "SHOW MASTER STATUS" to "SHOW BINLOG STATUS". The renaming clarifies the behavior and is not related to political correctness, the project does not abandon the master / slave terms and even added new privileges "MASTER ADMIN" and "SLAVE ADMIN". At the same time, a new key "REPLICA", which is a synonym for "SLAVE", has been added to the SQL expression.
  • Some expressions have changed the privileges required to execute them. "SHOW BINLOG EVENTS" now requires "BINLOG MONITOR" privilege instead of "REPLICATION SLAVE", "SHOW SLAVE HOSTS" requires "REPLICATION MASTER ADMIN" privilege instead of "REPLICATION SLAVE", "SHOW SLAVE STATUS" requires "REPLICATION SLAVE ADMIN" or " SUPER" instead of "REPLICATION CLIENT", "SHOW RELAYLOG EVENTS" requires rights "REPLICATION SLAVE ADMIN" instead of "REPLICATION SLAVE".
  • Added constructions "INSERT...RETURNING" and "REPLACE...RETURNING", returning a list of inserted/replaced rows in the form, as if the values ​​were returned using a SELECT statement (similar to "DELETE ... RETURNING").

    INSERT INTO t2 VALUES (1,'Dog'),(2,'Lion'),(3,'Tiger'),(4,'Leopard')
    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 |
    +——+———+———+———-+

  • Added expressions "EXCEPT ALL" and "INTERSECT ALL» to exclude/complete the result with a certain set of values.
  • Added the ability to specify comments inside the "CREATE DATABASE" and "ALTER DATABASE" blocks.
  • Added constructs for renaming indexes and columns "ALTER TABLE ... RENAME INDEX / KEY" And "ALTER TABLE ... RENAME COLUMN«.
  • The "ALTER TABLE" and "RENAME TABLE" operations now support the "IF EXISTS" condition to perform the operation only if the table exists;
  • For indexes in "CREATE TABLE" the attribute "VISIBLE«.
  • Added "CYCLE" expression to detect recursive cycles CTE.
  • Features added JSON_ARRAYAGG и JSON_OBJECTAGG to return an array or JSON object with the values ​​of the specified column.
  • Added service information tables (THREAD_POOL_GROUPS, THREAD_POOL_QUEUES, THREAD_POOL_STATS and THREAD_POOL_WAITS) for the thread pool (thread_pool).
  • The ANALYZE expression has been expanded to show the time it takes to check the WHERE clause and perform auxiliary operations.
  • The range processing optimizer takes into account the signs "IS NOT NULL"
  • Significantly reduced the size of temporary files used when sorting with VARCHAR, CHAR and BLOB types.
  • В binary log, used for organizing replication, new fields with metadata have been added, including Primary Key, Column Name, Character Set, and Geometry Type. The mariadb-binlog utility and the SHOW BINLOG EVENTS and SHOW RELAYLOG EVENTS commands show replication flags.
  • Design DROP TABLE now reliable removes tables that remain in the storage engine even if there are no ".frm" or ".par" files.
  • A hardware accelerated version of the crc32() function has been implemented for AMD64, ARMv8 and POWER 8 CPUs.
  • Changed some default settings. The innodb_encryption_threads parameter has been increased to 255 and the max_sort_length value has been increased from 4 to 8.
  • Numerous performance optimizations for the InnoDB engine are introduced.
  • Full support added to Galera's synchronous multi-master replication mechanism GTID (Global Transaction ID), common transaction identifiers for all cluster nodes.
  • Switched to a new branch of the library PCRE2 (Perl Compatible Regular Expressions), instead of the classic PCRE 8.x series.
  • New versions of bindings for connecting to MariaDB and MySQL DBMS from Python and C programs are proposed: MariaDB Connector/Python 1.0.0 и MariaDB Connector/C 3.1.9. The Python binding complies with the Python DB API 2.0, is written in C, and uses the Connector/C library to connect to the server.

Source: opennet.ru

Add a comment