Changes and Improvements in MariaDB 10.5

MariaDB 10.5 is the current major stable version The first stable release was in June 2020, and it will be supported until June 2025.

Upgrading

Implemented Features

ColumnStore

Binaries Named mariadb (mysql Symlinked)

  • All binaries previously beginning with mysql now begin with mariadb, with symlinks for the corresponding mysql command. (MDEV-21303)
  • When starting the MariaDB server via the systemd service it will be started using the mariadbd binary name, so this will now show up in the system process list instead of mysqld
  • Same for the mariadbd-safe wrapper script. Even when called via the mysqld_safe symlink, it will start the actual server process as mariadbd, not mysqld now. This also affects startup via system service init scripts on platforms that don't yet have switched to SystemD

INET 6 Data Type

Amazon S3

  • The S3 storage engine allows one to archive MariaDB tables in Amazon S3, or any third-party public or private cloud that implements S3 API ( MDEV-22606)
  • Both S3 tables and partitioned S3 tables are discoverable. This means that if you create a partitioned S3 table, both the partitioned table and its partitions can be directly used by another server that has access to the S3 storage. (MDEV-22088)

Privileges Made More Granular

InnoDB: Performance Improvements etc.

InnoDB New Defaults for Variables

InnoDB Removed or Deprecated Variables

Performance Schema Updates to Match MySQL 5.7 Instrumentation and Tables

Galera: Full GTID Support

  • Add full GTID support to Galera cluster (commit). With this feature all nodes in a cluster will have the same GTID for replicated events originating from the cluster. Also added a new variable, wsrep_gtid_seq_no, to manually update the WSREP GTID sequence number in the cluster (similar to how the gtid_seq_no variable is used for non-WSREP transactions).
  • Add new mode to wsrep_OSU_method in which Galera checks storage engine of the affected table (MDEV-20051)
  • Galera: Replicate MariaDB GTID to other nodes in the cluster (MDEV-20720)

Binary Log and Replication: More Metadata

  • slave_parallel_mode now defaults to optimistic (MDEV-18648).
  • Make REPLICA a synonym for SLAVE in SQL statements (MDEV-20601)
  • ENFORCE option for slave_run_triggers_for_rbr (MDEV-21833)
  • Extended binlog metadata (MDEV-20477) to include new fields. This was done to solve replication issues when the Master and Slave table had different definitions for a column which could lead to data loss (MDEV-19708). It also enables us to do better replication with pluggable data types in the future.
    • The new metadata fields are:
      • Signedness of Numeric Columns
      • Character Set of Character Columns and Binary Columns
      • Column Name
      • String Value of SET Columns
      • String Value of ENUM Columns
      • Primary Key
      • Character Set of SET Columns and ENUM Columns
      • Geometry Type
    • Also added a new global variable, binlog_row_metadata to control the amount of metadata logged. Possible values are:
      • FULL - all metadata is logged
      • MINIMAL - only metadata required by a worker is logged
      • NO_LOG - No metadata is logged (default)
  • Binary log DDL entries can now be marked that they should be ignored if the target table doesn't exist (implicit IF EXISTS).
  • mariadb-binlog output is extended to show all replication flags. Example of output: SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/.
  • SHOW BINLOG EVENTS and SHOW RELAYLOG EVENTS are extended to show replication flags.

Syntax

JSON

  • Added JSON_ARRAYAGG. This returns a JSON array containing an element for each value in a given set of JSON or SQL values. It acts on a column or an expression that evaluates to a single value.
  • Added JSON_OBJECTAGG. This returns a JSON object containing key-value pairs. It takes two expressions that evaluate to a single value, or two column names, as arguments, the first used as a key, and the second as a value.

Thread Pool

Performance Improvements

  • Speed up binary row logging code
  • Range optimizer speedups. Removed double calls to records_in_range() for some cases.
  • Costs for using MEMORY tables updated to be more accurate
  • Fixed that 'ref' access is preferred over 'range' for the same index.
  • Improve connect speed (up to 25%). (MDEV-19515)

Query Optimizer

  • ANALYZE for statements is improved, now it also shows the time spent checking the WHERE clause and doing other auxiliary operations (MDEV-20854)
  • Inferred IS NOT NULL predicates can be used by the range optimizer (MDEV-15777)
  • Allow packed sort keys and values of non-sorted fields in the sort buffer (MDEV-21263 & MDEV-21580)
    • Makes filesort temporary files much smaller when VARCHAR, CHAR or BLOB’s are used!

General

PCRE (Perl Compatible Regular Expressions)

Other

  • Binary tarball size has been reduced (MDEV-21943)

Variables

See also

List of All MariaDB 10.5 Releases

DateReleaseStatusRelease NotesChangelog
7 Oct 2020MariaDB 10.5.6Stable (GA)Release NotesChangelog
10 Aug 2020MariaDB 10.5.5Stable (GA)Release NotesChangelog
24 Jun 2020MariaDB 10.5.4Stable (GA)Release NotesChangelog
12 May 2020MariaDB 10.5.3RCRelease NotesChangelog
26 Mar 2020MariaDB 10.5.2BetaRelease NotesChangelog
14 Feb 2020MariaDB 10.5.1BetaRelease NotesChangelog
3 Dec 2019MariaDB 10.5.0AlphaRelease NotesChangelog

Comments

Comments loading...
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.