Changes and Improvements in MariaDB 10.5

You are viewing an old version of this article. View the current version here.

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

  • Split SUPER privilege to smaller privileges (MDEV-21743). New privileges were added so that more fine grained tuning of what each user can do can be applied:
  • The REPLICATION CLIENT privilege was renamed to BINLOG MONITOR. The old syntax is understood for compatibility (MDEV-21743).
  • The SHOW MASTER STATUS statement was renamed to SHOW BINLOG STATUS (MDEV-21743). The old syntax is understood for compatibility.
  • A number of statements changed the privileges that they require. The old privileges were historically inappropriately chosen in the upstream. 10.5.2 fixes this problem. Note, these changes are incompatible to previous versions. A number of GRANT commands might be needed after upgrade.
    • SHOW BINLOG EVENTS now requires the BINLOG MONITOR privilege (requred REPLICATION SLAVE prior to 10.5.2).
    • SHOW SLAVE HOSTS now requires the REPLICATION MASTER ADMIN privilege (required REPLICATION SLAVE prior to 10.5.2).
    • SHOW SLAVE STATUS now requires the REPLICATION SLAVE ADMIN or the SUPER privilege (required REPLICATION CLIENT or SUPER prior to 10.5.2).
    • SHOW RELAYLOG EVENTS now requires the REPLICATION SLAVE ADMIN privilege (required REPLICATION SLAVE prior to 10.5.2).
  • In order to help the server understand which version a privilege record was written by, the mysql.global_priv.priv field contains a new JSON field, version_id (MDEV-21704)
  • SHOW PRIVILEGES now correctly lists the Delete history privilege, rather than displaying it as Delete versioning rows. (MDEV-20382)

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
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.