Now GA: MariaDB Community Server 10.4


We are proud to announce the General Availability (GA) of MariaDB Community Server 10.4. Download it today!

MariaDB Community Server 10.4.6 is the newest version of the fastest growing open source database, and includes exciting new features to address the requirements of today’s mission-critical applications. Plus, the optimizations made “under the hood” deliver a robust backend service for applications running on MariaDB Server around the globe.

Some of the key enhancements include:

  • Temporal data processing has been enhanced with the support of application time period tables.
  • Instant DDL operations for InnoDB allow non-blocking schema changes on the fly.
  • Security and stability improvements in the authentication system and user password management. SSL certificates can be reloaded.
  • Optimizer improvements, including the implementation of an optimizer trace and improved defaults as well as active histograms and storage engine independent statistics.
  • Performance improvements for Unicode collations, plus faster server startup, shutdown and purge; and faster checks for bigger user and privilege tables.
  • MariaDB Cluster is now based on Galera 4 and delivers better performance and large transactions.

Temporal Data Processing

System-versioned table support was added in MariaDB Server 10.3. Temporal features are part of the standard SQL:2011. Today’s business applications require old data to be kept when data is changed or removed. System-versioned tables can keep the old data based on system valid time periods, which means that the timestamp used to define the period of validity is based on the time of execution. This is extremely useful for auditing requirements.

However, data can have a different definition of “validity” for an application, as applications are interested in capturing time periods during which the data is believed to be valid in the real-world scenario. This data may be changed in the database today, but the data might be valid only for a time period in the past, or in the future. Here’s where application time period tables come into play. They serve as the start and end timestamp to define the period of validity that can be controlled by the application, not the database system.

And you can take things further, you can combine system versioning and application time in the same table, thus achieving bi-temporal data.

Instant DDL Operations

With MariaDB Server 10.4, the InnoDB storage engine allows instant changes to a table definition for the most common table structure change operations. This includes actions like:

  • Dropping a column
  • Changing the order of columns
  • Adding a column
  • Initiating some data type conversions
  • Allowing use of NULL
  • Setting and removing defaults
  • Adding or removing constraints

By setting the algorithm for altering tables to INSTANT it is assured that a change is instantly done. An error is shown if the operation would need to lock records or copy data or even the whole table. Visit the documentation to learn more about these improvements and how they make a huge impact for your service.


One of the biggest changes has been made in user management. User accounts are now stored in a new table, mysql.global_priv, which allows a more flexible privilege definition. Compatibility for administration tools is provided via a view to virtually provide the old table mysql.user. The unix_socket authentication plugin is now the default on Unix-like systems, and local root users are verified via their system user accounts.

To support best practice regarding account management, accounts can be locked with MariaDB Server 10.4, and password expiry can be enabled.

Services that require changing SSL certificates no longer need to restart MariaDB Server to use new certificates. A FLUSH SSL reloads them.


To optimize a system more information might be needed from the database server about why the optimizer is choosing tables or how a query is transformed for an executed statement. MariaDB Server 10.4 comes with an optimizer trace, which provides detailed information to help create the best possible queries to achieve optimal performance for an application.

New defaults are another added improvement as well as the use of storage engine independent statistics to collect histograms for the optimizer.


Working with Unicode-based collations is typically slower than using collations of a smaller size. Some optimizations have been implemented to work with Unicode-based collations, like for the use of ORDER BY.

Changes in InnoDB allow for faster startup, shutdown and purge operations. While these operations are not necessarily done that often on a production server, developers and even more automated test environments will benefit from it as here server starts are an often repeated operation. MariaDB Backup also takes advantage of the faster startup and purge, as it applies redo logs by using an embedded server process for doing that.

Privilege checks have also been improved, especially for services where a large number of users or GRANT privileges are stored in the database.

MariaDB Cluster

MariaDB Cluster is now based on Galera 4 and benefits from improvements like streaming replication, which eliminates the limitation of the data size of a transaction. Galera 4 can now also make use of group commits, which improves overall performance.

MariaDB Cluster users will also benefit from the instant alter enhancements of InnoDB, as blocking DDL operations cause even more issues in Galera due to its multi-node architecture.

Try It

MariaDB Server 10.4 GA is available for download now. We’re excited to deliver features such as bitemporal tables and broad instant schema changes that you can’t find in any other open source database. Take MariaDB Server 10.4 for a test drive and share your feedback with us. If you’re looking to run MariaDB in production, MariaDB Enterprise Server 10.4 provides a hardened version of MariaDB Server that’s enterprise-grade and production-ready out of the box.