MariaDB versus MySQL

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

Upgrading from MySQL to MariaDB? Let us help you!

  Contact Us

See also:

About MariaDB

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

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

See About MariaDB for more information.

Features of MariaDB

More Storage Engines

In addition to the standard MyISAM, Blackhole, CSV, Memory, and Archive storage engines, the following are also included with MariaDB Source and Binary packages:

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.
  • 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.
  • Our use of the Aria storage engine enables faster complex queries (queries which normally use disk-based temporary tables). The Aria storage engine is used for internal temporary tables, which should give you a speedup when doing complex selects. Aria is usually faster for temporary tables when compared to MyISAM because Aria caches row data in memory and normally doesn't have to write the temporary rows to disk.

Extensions & new features

We've added a lot of new features to MariaDB. If a patch or feature is useful, safe, and stable we make every effort to include it in MariaDB.

Better Testing

  • More tests in the test suite.
  • Bugs in tests fixed.
  • Test builds with different configure options to get better feature testing.
  • Remove invalid tests. (e.g. Don't test feature ''X'' if that feature is not in the build you are testing.)

Fewer warnings and bugs

  • Bugs are bad. Fix as many bugs as possible and try to not introduce new ones.
  • Compiler warnings are also bad. Eliminate as many compiler warnings as possible.

Incompatibilities between MariaDB and MySQL

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.

This means that for most cases, you can just uninstall MySQL and install MariaDB and you are good to go. (No need to convert any datafiles if you use same main version, like 5.1).

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?

The idea is that we will add patches to MariaDB of significant interest to users and developers alike. These include patches we 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.

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.