Release date: 29 Oct 2009
See the MariaDB versus MySQL page for a high-level overview of the differences between MariaDB and MySQL.
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.
For 5.1.38, the main differences between MariaDB and MySQL are:
- Maria storage engine is included
- XtraDB storage engine is included
- PBXT storage engine is included
- Faster complex queries
- Pool of Threads
- Fewer warnings and bugs
- Speed improvements
- Better testing of features
- Table elimination
- Slow Query Log Extended Statistics
- Microsecond Precision in Processlist
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: Maria storage engine.
XtraDB storage engine is included
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 XtraDB storage engine
PBXT storage engine is included
The PBXT storage engine version 1.0.08d is included in the source and binaries by default.
See also: PBXT storage engine
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.
Pool of Threads
Limited sets of threads handling all queries.
See: Pool of Threads
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 or cleaning up code, we'll fix it when possible.
- There are some improvements to DBUG code to make its execution faster when debug is compiled in but not used.
CHECKSUM TABLEnow ignores values in
NULLfields. This makes
CHECKSUM TABLEfaster and fixes some cases where the same table definition could give different checksum values depending on row format. The disadvantage is the value is now different compared to other MySQL installations. The new checksum calculation is fixed for all table engines which use the default way to calculate and MyISAM which does the calculation internally. Note: Old MyISAM tables with internal checksum will return the same checksum as before. To fix them to calculate according to new rules you have to do an
ALTER TABLE. You can use the old ways to calculate checksums by using the option
--oldto mysqld or set the system variable '
@@old' to 1 when you do
CHECKSUM TABLE ... EXTENDED;
- 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.
- 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 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.
Implementation of MWL#17: Table elimination
See Table_Elimination for details.
Slow Query Log Extended Statistics
See Slow Query Log Extended Statistics for details.
Microsecond Precision in Processlist
See TIME_MS column in INFORMATION_SCHEMA.PROCESSLIST for details.