Help Save MySQL!
Click here to sign the petition and help MySQL


MariaDB versus MySQL

From Askmonty.org

Main Page >  MariaDB 
MariaDB FAQ | MariaDB versus MySQL | Development | Download | License | Logo

See also:

Contents

About MariaDB

MariaDB 5.1 is based on MySQL 5.1 and is available under the terms of the GPL v2 license.

MariaDB will be kept up to date with the latest MySQL release from the same branch.

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

Currently the main differences between MariaDB 5.1 and MySQL 5.1 are:

In MariaDB 5.2, the new features are:

  • Group commit for the Maria storage engine. (faster)
  • userstatv2', which creates several new information_schema tables with useful statistics information. You enable the statistics by setting the 'userstat' variable.

(for a definite and up-to-date list of features in 5.2, see MariaDB 5.2 page).

Features in MariaDB 5.1.38

Maria storage engine is included

The Maria storage engine version 1.5 (the crash-safe version) is included in the source and binaries by default.

If you use the source, you can of course easily disable the Maria storage engine when configuring MariaDB.

The new Maria storage engine specific options can be found here: Manual:Maria storage engine.

[back to top]

XtraDB storage engine is included

Percona XtraDB version 6 replaces InnoDB in the MariaDB 5.1 tree.

XtraDB is a drop in replacement of InnoDB (same table formats, no need to convert any data).

XtraDB gives you similar performance improvements for multi-cpu systems in MariaDB 5.1 that you can expect from using InnoDB in MySQL 5.4.

See also: Manual:XtraDB storage engine

[back to top]

PBXT storage engine is included

The PBXT storage engine is included in the source and binaries by default.

See also: Manual:PBXT storage engine

[back to top]

Faster complex queries

Our use of the Maria storage engine enables faster complex queries (queries which normally use disk-based temporary tables).

The Maria storage engine is used for internal temporary tables, which should give you a speedup when doing complex selects. Maria is usually faster for temporary tables when compared to MyISAM because Maria caches row data in memory and normally doesn't have to write the temporary rows to disk.

[back to top]

Pool of Threads

Limited sets of threads handling all queries.

See: Manual:Pool of Threads

[back to top]

Fewer warnings and bugs

  • Fewer warnings when compiling. We believe that compiler warnings can indicate bugs, and strive toward reduction to 0.
  • Fewer bugs. If we see a bug while fixing a warning, cleaning up code or adding more test to test suite, we'll fix it when possible.
  • Extended test suite to cover more code and with fewer timing dependencies.

[back to top]

Speed improvements

  • There are some improvements to DBUG code to make its execution faster when debug is compiled in but not used.
  • CHECKSUM TABLE is faster. See: Manual:CHECKSUM TABLE for details.
  • We have eliminated/improved some not needed character set conversions. Overall speed improvements is 1-5 % (according to sql-bench) but can be higher for big results sets with all characters between 0x00-0x7f.

[back to top]

Extensions

  • MariaDB can handle up to 32 key segments per key (up from 16)
  • Added a new handler function: prepare_index_scan() that is called before a key scan is done.
  • Added --abort-source-on-error to the mysql client.

[back to top]

Better testing of features

  • Wrong mutex usage detector. This helps us find and fix deadlocks when taking mutex in inconsistent orders. In MariaDB we have removed several deadlocks which exist in the normal MySQL code.
  • More tests in the test suite.
  • Test builds with different configure options to get better feature testing.

[back to top]

Table elimination

Implementation of MWL:17: Table elimination.

See Manual:Table_Elimination for details.

[back to top]

Slow Query Log Extended Statistics

This is based on the microslow patch from Percona.

See Manual:Slow Query Log Extended Statistics for details.

Microsecond Precision in Processlist

This is based on the microsec_process patch from Percona.

See Manual:Microsecond Precision in Processlist for details.

[back to top]

Features in MariaDB 5.1.39

FederatedX storage engine is included

The FederatedX storage engine replaces the old, not maintained, Federated storage engine.

See also: Manual:FederatedX storage engine

[back to top]

Things to add to MariaDB 5.1 before stable release

See MariaDB_5.1_TODO for the list

Incompatibilities between MariaDB 5.1 and MySQL 5.1

Our aim is to make MariaDB a full drop in replacement for MySQL. This means:

  • From the user standpoint, things should be the as before, except that there are some new commands and things should be faster and more reliable.
  • Only that package name is different; All filenames, binaries, paths, ports, sockets etc should be the same.
  • Client libraries are binary compatible.
  • Data and table definition files (.frm) files are binary compatible.
  • Command should work the same.

However, in some few cases we have to be incompatible as we want to provide more and better information than MySQL.

Here we will list all the known user level incompatibilities that you may see when using MariaDB 5.1 instead of MySQL 5.1.

  • You can't use a binary only storage engine with MariaDB if it's not compiled for exactly the same MariaDB version. (This is because the server internal structure THD is different between MySQL and MariaDB. This is common also between different MySQL versions).
  • CHECKSUM TABLE may give different result as MariaDB doesn't ignore NULL's in the columns as MySQL 5.1 does (Future MySQL versions should calculate checksums the same way as MariaDB). You can get the 'old style' checksum in MariaDB by starting mysqld with the --old option. Note however that that the MyISAM and Maria storage engines in MariaDB are using the new checksum internally, so if you are using --old, the CHECKSUM command will be slower as it needs to calculate the checksum row by row.
  • The slow query log has more information about the query, which may be a problem if you have a script that is parsing the slow query log.

What kind of patches can be considered for MariaDB 5.2

The idea is that while the Maria storage engine is being tested we will add patches to MariaDB of significant interest to users and developers alike. These include patches both Monty Program Ab and the Maria community feel should have been added to MySQL a long time ago. We'd like your opinions.

If you have a patch that you would like to get into MariaDB, please submit them to the maria-developers email list.