<<include slug="latest-51">>
[[http://askmonty.org/wiki/MariaDB:Download:MariaDB_5.1.38|Download]] | **Release Notes** | [[mariadb-5138-changelog|Changelog]]
**Release date:** 29 Oct 2009
See the [[mariadb-versus-mysql|MariaDB versus MySQL]] page for a high-level
overview of the differences between MariaDB and MySQL.
[[mariadb|MariaDB]] 5.1.38 Beta is based on [[http://mysql.com|MySQL]] 5.1.38
and XtraDB 1.0.3-6.
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:
<<toc>>
=== Maria storage engine is included
The [[aria|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|MariaDB]].
The new Maria storage engine specific options can be found here:
[[aria|Maria storage engine]].
=== XtraDB storage engine is included
[[http://www.percona.com/docs/wiki/percona-xtradb:start|Percona XtraDB]]
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 [[xtradb-storage-engine|XtraDB storage engine]]
=== PBXT storage engine is included
The [[http://www.primebase.org|PBXT]] storage engine version 1.0.08d is
included in the source and binaries by default.
See also: [[pbxt-storage-engine|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 [[aria|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|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.
=== Speed improvements
* There are some improvements to DBUG code to make its execution faster when
debug is compiled in but not used.
* <<fixed>>CHECKSUM TABLE<</fixed>> now ignores values in
<<fixed>>NULL<</fixed>> fields. This makes <<fixed>>CHECKSUM TABLE<</fixed>>
faster 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
<<fixed>>ALTER TABLE<</fixed>>. You can use the old ways to calculate
checksums by using the option <<fixed>>--old<</fixed>> to mysqld or set the
system variable '<<fixed>>@@old<</fixed>>' to 1 when you do
<<fixed>>CHECKSUM TABLE ... EXTENDED;<</fixed>>
* 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.
=== 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 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.
=== Table elimination
Implementation of MWL:17: Table elimination
See [[table-elimination|Table_Elimination]] for details.
=== Slow Query Log Extended Statistics
This is based on the
[[http://www.percona.com/mysql/5.1.26/patches/microslow.patch|microslow]] patch
from [[http://www.percona.com/|Percona]].
See [[slow-query-log-extended-statistics|Slow Query Log Extended Statistics]]
for details.
=== Microsecond Precision in Processlist
This is based on the
[[http://www.percona.com/mysql/5.0.77-b13/patches/microsec_process.patch|microsec_process]]
patch from [[http://www.percona.com/|Percona]].
See [[time_ms-column-in-information_schemaprocesslist|TIME_MS column in INFORMATION_SCHEMA.PROCESSLIST]] for details.