Changes & Improvements in MariaDB 5.1
In short, MariaDB 5.1 is a binary drop in replacement of MySQL 5.1, but with performance like MySQL 5.5 (thanks to XtraDB), fewer bugs, and more features. Thanks to the extended and improved
mysql_upgrade program it's also easier to upgrade from MySQL 5.0 to MariaDB 5.1 than to MySQL 5.1.
MariaDB 5.1 is based on MySQL 5.1. We do a merge once a month with MySQL5.1 to ensure all MySQL bug fixes get into MariaDB.
New storage engines:
- Aria: A crash-safe storage engine based on MyISAM.
- XtraDB: Drop-in replacement for InnoDB based on the InnoDB plugin.
- PBXT: A transactional storage engine with a lot of nice features.
- FederatedX: Drop-in replacement for Federated.
- 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 result 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.
- There are some improvements to DBUG code to make its execution faster when debug is compiled in but not used.
Extensions & new features
- Table Elimination (New optimization) (MWL#17)
- Pool of Threads (Allows you to have 200,000+ connections to MariadB)
- MariaDB can handle up to 32 key segments per key (up from 16)
--abort-source-on-errorto the mysql client.
- Microsecond Precision in Processlist
- mysqltest extensions
Easier to upgrade
- InnoDB and Archive tables are now upgraded properly.
- More options to mysql_upgrade and mysqlcheck to find out what's going on.
- Cleaned up wrong warnings from mysqlcheck.
(Upgrading from MySQL 5.1 to MariaDB 5.1 is a trivial 1 min exercise as MariaDB is a binary drop in replacement of MySQL. Just remove MySQL and install MariaDB and things will *just work* )
- More tests in the test suite.
- All tests runs now clean without having to restart test. (Oracle re-runs tests 3 times and assumes things are ok if one tests works)
- 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
- A build is not regarded ok if there are any errors or compiler warnings.
- We have fixed a lot of bugs in the MySQL code which we have found while merging the MySQL code into MariaDB and by running the extended test suite.
Security Vulnerabilities Fixed in MariaDB 5.1
For a complete list of security vulnerabilities (CVEs) fixed across all versions of MariaDB, see the Security Vulnerabilities Fixed in MariaDB page.
- CVE-2013-1548: MariaDB 5.1.66
- CVE-2013-1531: MariaDB 5.1.67
- CVE-2013-0389: MariaDB 5.1.67
- CVE-2013-0385: MariaDB 5.1.67
- CVE-2013-0384: MariaDB 5.1.67
- CVE-2013-0383: MariaDB 5.1.67
- CVE-2013-0375: MariaDB 5.1.67
- CVE-2012-5612: MariaDB 5.1.67
- CVE-2012-5611: MariaDB 5.1.67, MariaDB 5.1.66
- CVE-2012-5060: MariaDB 5.1.66
- CVE-2012-4414: MariaDB 5.1.66 
- CVE-2012-3197: MariaDB 5.1.66
- CVE-2012-3180: MariaDB 5.1.66
- CVE-2012-3177: MariaDB 5.1.66
- CVE-2012-3173: MariaDB 5.1.66
- CVE-2012-3167: MariaDB 5.1.66
- CVE-2012-3166: MariaDB 5.1.66
- CVE-2012-3163: MariaDB 5.1.66
- CVE-2012-3160: MariaDB 5.1.66
- CVE-2012-3158: MariaDB 5.1.66
- CVE-2012-3150: MariaDB 5.1.66
- CVE-2012-1734: MariaDB 5.1.66
- CVE-2012-1705: MariaDB 5.1.67
- CVE-2012-1703: MariaDB 5.1.62
- CVE-2012-1702: MariaDB 5.1.67
- CVE-2012-1690: MariaDB 5.1.62
- CVE-2012-1689: MariaDB 5.1.66
- CVE-2012-1688: MariaDB 5.1.62
- CVE-2012-0574: MariaDB 5.1.67
- CVE-2012-0572: MariaDB 5.1.67
- CVE-2012-0540: MariaDB 5.1.66
- CVE-2009-4484: MariaDB 5.1.42
The following CVEs are also fixed in MariaDB 5.1 but the fix is not tied to a specific version number: