Seeing its slightly over a month since MariaDB 1.5 Beta was released for Linux and a couple of days now since the Windows Win32 Version came into being I felt it prudent to mention a little a bit about it for now.

So to start off I’d like to mention about it’s history. For starters the goal of MariaDB is to provide a community developed, stable, and always Free branch of MySQL that is, on the user level, compatible with the main version.

In other words you could say MariaDB is a community developed branch of the MySQL database. This Database is developed under the Monty Program AB, founded by Michael “Monty” Widenius who also created MySQL. This program also has a bunch of the original MySQL Engineers plus a bunch of new comers.

MariaDB you could say id MySQL which uses the Maria Storage Engine as its default Transactional and Non-Transactional storage Engine.

MariaDB compares to MySQL in one way or another such as other than working exactly as MySQL in a manner in which all commands, interfaces, libraries and APIs that exist in MySQL also exist in MariaDB, There are a few main differences that I will mention here.

.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.
.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 which has the same table formats so there is 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.
.The PBXT storage engine is included in the source and binaries by default.
. It as faster complex queries. These are 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.
.Pool of Threads has limited sets of threads handling all queries.
.Fewer warnings when compiling based in the belief that compiler warnings can indicate bugs, and strive toward reduction to 0.This goes as far as fewer bugs.
.There are some improvements to DBUG code to make its execution faster when debug is compiled in but not used.
.CHECKSUM TABLE is faster.
.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 0×00 – 0×7f.
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.
  • 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.
  • 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 which has the same table formats so there is 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.
  • The PBXT storage engine is included in the source and binaries by default.
  • It as faster complex queries. These are 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.
  • Pool of Threads has limited sets of threads handling all queries.
  • Fewer warnings when compiling based in the belief that compiler warnings can indicate bugs, and strive toward reduction to 0.This goes as far as fewer bugs.
  • There are some improvements to DBUG code to make its execution faster when debug is compiled in but not used.
  • CHECKSUM TABLE is faster.
  • 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 0×00 – 0×7f.

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.

Better testing of features.

  • Wrong mutex usage detector. This helps find and fix deadlocks when taking mutex in inconsistent orders. In MariaDB has removed several deadlocks which exist in the normal MySQL code.
  • Table elimination.
  • Slow Query Log Extended Statistics. This is based on the microslow patch from Percona.
  • Microsecond Precision in Processlist. This is based on the microsec_process patch from Percona.

Now that I have mentioned some of the differences, I think it is also important to mention some of the incompatibilities and compatibilities between the two Databases.

To kick it off…

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

Where MariaDB has to be incompatible in order to provide more and better information than MySQL, here are 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.

As far as Licences is concerned MariaDB is available under the terms of the GPL v2 license, just like MySQL.

In the coming weeks, months and years to follow, I will be doing some writeups not mainly as reviews but more as a technical support paper, tutorials and all sorts of staff towards helping others out there make it as comfortable as possible to use MariaDB

MariaDB 5.1.39 Beta here: http://askmonty.org/downloads

.

Related posts:

  1. Battle For MySQL Rages On For Monty
  2. Making MySQL Easy with SQLyog Enterprise Edition
  3. Software Giant Oracle Decides to Buy Sun

5 Responses to “A little About MariaDB, a MySQL spin-off”

  1. It is much easier to post about matters that went well, or appeared good on the outside. When we changed over to Extreme Programming a few ages ago, we made critical mistakes presuming that automated testing was enough, and shipped many bad releases. We found out more around testing (and how to improve it) from those bad releases than from the ensuing good releases.

  2. I found your blog when searching MSN for infomation about mortgage net branch companies

  3. Hello, just needed you to know I have added your site to my Google bookmarks because of your great blog layout. But seriously, I think your site has one of the freshest theme I’ve came across. It really helps make reading your blog a lot better.

  4. I would like to thank you for the efforts you have made in publishing this article. I am going for the same best work from you in the future as well. In fact your imaginative writing abilities has inspired me to start my own blog now. Really the blogging is distributing its wings rapidly. Your write up is a fine representative of it.

  5. Mora Mirra says:

    Hello – just a little note to say thanks for this article. Very helpful.

Leave a Reply