The most recent release in the MariaDB 5.5 series is:
MariaDB 5.5.57 Download Now

Download | Release Notes | Changelog | Overview of 5.5

Release date: 16 Mar 2012

MariaDB 5.5.21 is a Beta release. In general this means that there are no known serious bugs, except for those marked as feature requests. This is the second release of the MariaDB 5.5 series and includes features left out of the 5.5.20-alpha release, and various bug fixes.

For a description of MariaDB 5.5 see the What is MariaDB 5.5 page.

For a list of changes made in MariaDB 5.5.21-beta, with links to detailed information on each push, see the MariaDB 5.5.21 Changelog.

In most respects MariaDB will work exactly as MySQL: all commands, interfaces, libraries and APIs that exist in MySQL also exist in MariaDB.

Note: There are no RPM packages of MariaDB 5.5.21 available at this time.

Includes MySQL 5.5.21

This version of MariaDB includes MySQL 5.5.21. See Changes in MySQL 5.5.21 for what changed between this and previous MySQL versions.

Security fix

  • A fix is included for a COM_BINLOG_DUMP crash on invalid data. See MDEV-3910 for details.


MariaDB 5.5.21 is the first release to feature the new threadpool. This is comparable in functionality to the closed-source feature in MySQL Enterprise.

Preliminary benchmarks of the new threadpool code are available here.

For our Windows users, pool-of-threads is now the default scheduler on Windows Vista (and higher). It is not the default on Linux/Unix yet as we don't feel we have had enough time to thoroughly test various corner cases.

Updated SphinxSE

SphinxSE has been updated to version 2.0.4 (the latest upstream version) in MariaDB 5.5.21.


In 5.5.21 there is a new LIMIT ROWS EXAMINED optimization which provides the means to terminate the execution of SELECT statements which examine too many rows, and thus use too many resources. This is achieved through an extension of the LIMIT clause LIMIT ROWS EXAMINED <number_of_rows>. Whenever possible the semantics of LIMIT ROWS EXAMINED is the same as that of normal LIMIT (for instance for aggregate functions).

More information is available on the LIMIT ROWS EXAMINED page.


MariaDB 5.5.21 includes a new INSTALL SONAME statement. This statement is a variant of INSTALL PLUGIN. It installs all plugins from a given plugin_library.

See the INSTALL SONAME page for details.

Extended Keys support for XtraDB and InnoDB

In 5.5.21 there is a new "extended keys" optimization which, when enabled, makes use of existing components of InnoDB/XtraDB keys to generate more efficient execution plans. Using these components in many cases allows the server to generate execution plans which employ index-only look-ups.

See the Extended Keys page for more information.

Non-blocking Client Library

MariaDB, starting with version 5.5.21 supports non-blocking operations in the client-library. This allows an application to start a query or other operation against the database, and then continue to do other work (in the same thread) while the request is sent over the network, the query is processed in the server, and the result travels back. As parts of the result become ready, the application can — at its leisure — call back into the library to continue processing, repeating this until the operation is completed.

Non-blocking operation is implemented entirely within the client library. This means no special server support is necessary and non-blocking operation works with any version of the MariaDB or MySQL server, the same as the normal blocking API. It also means that it is not possible to have two queries running at the same time on the same connection (this is a protocol limitation). But a single thread can have any number of non-blocking queries running at the same time, each using its own MYSQL connection object.

See Non-Blocking Client Library for details.

mysql_real_connect() Changes

In MySQL, and in MariaDB versions before 5.5.21, mysql_real_connect() removes from the MYSQL object any options set with mysql_option() when it fails. Beginning with MariaDB 5.5.21, options are preserved by a failing mysql_real_connect(); use mysql_close(), as normal, to clear them.

This only has effect if the MYSQL object is reused after a mysql_real_connect() failure (which is unusual). No real-life incompatibilities are expected from this change (it is unlikely that an application would rely on options being automatically removed between connection attempts).

Selectively skipping replication of binlog events

Normally, all changes that are logged as events in the binlog are also replicated to all slaves (though still subject to filtering by --replicate-do-xxx, --replicate-ignore-xxx, and similar options). However, sometimes it may be desirable to have certain events be logged into the binlog, but not be replicated to all or a subset of slaves, where the distinction between events that should be replicated or not is under the control of the application making the changes.

This could be useful if an application does some replication external to the server outside of the built-in replication, or if it has some data that should not be replicated for whatever reason.

This is possible with two new system variables introduced in MariaDB 5.5.21: @@skip_replication and --replicate-events-marked-for-skip.

See Selectively skipping replication of binlog events for details.

Be notified of new MariaDB Server, Galera Cluster and Connector releases automatically by subscribing to the MariaDB Foundation community announce 'at' announcement list (this is a low traffic, announce-only list). MariaDB Corporation customers will be notified for all new releases, security issues and critical bug fixes for all MariaDB Corporation products thanks to the Notification Services.

MariaDB may already be included in your favorite OS distribution. More information can be found on the Distributions which Include MariaDB page.


Comments loading...