Changes & Improvements in MariaDB 10.0
MariaDB 10.0 is no longer maintained. Please use a more recent release.
The most recent release in the MariaDB 10.0 series is:
MariaDB 10.0.38 Download Now
MariaDB 10.0 is a previous stable series of MariaDB. It is built on the MariaDB 5.5 series with backported features from MySQL 5.6 and entirely new features not found anywhere else. The first stable release was in March 2014, and the final release was in January 2019.
For details on upgrading from MariaDB 5.5, see Upgrading from MariaDB 5.5 to MariaDB 10.0.
Blog posts with details of the reasoning behind calling this version MariaDB 10:
Contents
Implemented Features
Features that are in a release.
New Features
- For a list of all new variables, see System Variables Added in MariaDB 10.0
- Parallel Replication
- Global Transaction ID (MDEV-26)
- Multi source replication (MDEV-253) — Original code from Taobao, developed by Peng Lixun.
- Slave started with --binlog-format=STATEMENT can replicate from master with any type of --binlog-format Starting from MariaDB 10.0.22.
- Cassandra storage engine (MDEV-4695)
- CONNECT storage engine (MDEV-4146)
- Better table discovery. Sequence storage engine. Assisted discovery in FederatedX (MDEV-3808)
- Spider storage engine (MDEV-4438)
- TokuDB storage engine (MDEV-4507)
- Mroonga full-text search storage engine
- Engine independent table statistics (MDEV-3806)
- Subquery optimizations: EXISTS-to-IN optimization, (MDEV-38 - NOT EXISTS to IN), MDEV-537, MDEV-3862
- Histogram-based statistics for non-indexed columns (MDEV-4145)
- SHOW EXPLAIN command (MDEV-165)
- EXPLAIN in the slow query log (MDEV-407)
- Per thread memory usage (MDEV-4011). — Original code from Taobao, developed by Peng Lixun.
- information_schema.processlist has two new columns:
MEMORY_USAGE
andEXAMINED_ROWS
. - SHOW STATUS has a new variable: Memory_used.
- information_schema.processlist has two new columns:
- SHOW PLUGINS SONAME 'XXX' (MDEV-3807)
- SHUTDOWN statement (MDEV-4660)
- Killing a query by query id, not thread id (MDEV-4911)
- Faster UNIQUE key generation with ALTER TABLE (MDEV-539)
- Implement async commit checkpoint in InnoDB and XtraDB (MDEV-532)
- Support for atomic writes on FusionIO DirectFS (MDEV-4338)
- DELETE ... RETURNING (MDEV-3814)
- IF (NOT) EXISTS clauses for ALTER TABLE (MDEV-318)
- CREATE OR REPLACE TABLE (MDEV-5491)
- slave-ddl-exec-mode variable to specify how
CREATE TABLE
andDROP TABLE
is replicated.
- slave-ddl-exec-mode variable to specify how
- Dynamic columns now support names (MDEV-377, summary of changes)
- multiple use locks (GET_LOCK) in one connection (MDEV-3917)
- Better error messages (all error numbers now include descriptive text explaining what the number means)
- table attributes with sysvar as a default value (MDEV-4022)
- regular expression enhancements
- new regular expression library with modern features (PCRE)
- new functions REGEXP_REPLACE, REGEXP_INSTR, REGEXP_SUBSTR.
- Roles (MDEV-4397)
- metadata_lock_info information schema. Shows you which meta data locks are active.
- Adjustable hash size for MyISAM and Aria. This can greatly improve shutdown time (from hours to minutes) if you are using a lot of MyISAM/Aria tables with delayed keys.
- FLUSH TABLES ... FOR EXPORT
- The Extended Keys optimization is enabled by default
- MariaDB audit plugin
- filesort-with-small-limit-optimization is now visible through the slow query log and a new status variable, sort_priority_queue_sorts
- Error log flood protection
New Features Re-implemented From a Similar MySQL Feature
- CURRENT_TIMESTAMP as DEFAULT for DATETIME columns (MDEV-452)
- EXPLAIN for INSERT/UPDATE/DELETE (MDEV-3798, MWL#51)
New Features Backported from MySQL 5.6
- New InnoDB — from MySQL 5.6.14 in MariaDB 10.0.8 onwards
- New Performance schema — from MySQL 5.6.10 in MariaDB 10.0.4 onwards
- New Information Schema tables, updates and defaults.
- Optimized read only transaction (for InnoDB). This includes support for TRANSACTION READ ONLY.
- Filesort optimization for queries using the
ORDER BY ... LIMIT
optimization - A useful optimization for showing only a few rows of a bigger result set. (MDEV-4026) - backport --plugin-load-add (MDEV-3860)
- Online ALTER TABLE (MDEV-3933) (ALGORITHM=INPLACE, etc)
- InnoDB persistent statistics.
- privileges on temporary tables
- character set related extenstions
- GET DIAGNOSTICS
- EXCHANGE PARTITION
- Partition selection
- Temporal literals (such as
TIME'12:34:56'
) - WEIGHT_STRING() function
- Collation customization improvements (see Supported Characters Sets and Collations)
- TO_BASE64() and FROM_BASE64() functions
Incompatible Changes
- New reserved word: RETURNING. This can no longer be used as an identifier without being quoted.
Security Vulnerabilities Fixed in MariaDB 10.0
For a complete list of security vulnerabilities (CVEs) fixed across all versions of MariaDB, see the Security Vulnerabilities Fixed in MariaDB page.
- CVE-2021-2032: MariaDB 10.0.11
- CVE-2021-2011: MariaDB 10.0.35
- CVE-2020-14550: MariaDB 10.0.35
- CVE-2019-2537: MariaDB 10.0.38
- CVE-2019-2529: MariaDB 10.0.38
- CVE-2019-2503: MariaDB 10.0.37
- CVE-2019-2481: MariaDB 10.0.11
- CVE-2019-2455: MariaDB 10.0.35
- CVE-2018-3282: MariaDB 10.0.37
- CVE-2018-3251: MariaDB 10.0.37
- CVE-2018-3174: MariaDB 10.0.37
- CVE-2018-3156: MariaDB 10.0.37
- CVE-2018-3143: MariaDB 10.0.37
- CVE-2018-3133: MariaDB 10.0.34
- CVE-2018-3081: MariaDB 10.0.35
- CVE-2018-3066: MariaDB 10.0.36
- CVE-2018-3064: MariaDB 10.0.36
- CVE-2018-3063: MariaDB 10.0.36
- CVE-2018-3058: MariaDB 10.0.36
- CVE-2018-2819: MariaDB 10.0.35
- CVE-2018-2817: MariaDB 10.0.35
- CVE-2018-2813: MariaDB 10.0.35
- CVE-2018-2787: MariaDB 10.0.35
- CVE-2018-2784: MariaDB 10.0.35
- CVE-2018-2782: MariaDB 10.0.35
- CVE-2018-2781: MariaDB 10.0.35
- CVE-2018-2771: MariaDB 10.0.35
- CVE-2018-2767: MariaDB 10.0.35
- CVE-2018-2766: MariaDB 10.0.35
- CVE-2018-2761: MariaDB 10.0.35
- CVE-2018-2755: MariaDB 10.0.35
- CVE-2018-2668: MariaDB 10.0.34
- CVE-2018-2665: MariaDB 10.0.34
- CVE-2018-2640: MariaDB 10.0.34
- CVE-2018-2622: MariaDB 10.0.34
- CVE-2018-2612: MariaDB 10.0.34
- CVE-2018-2562: MariaDB 10.0.34
- CVE-2017-3653: MariaDB 10.0.32
- CVE-2017-3651: MariaDB 10.0.28
- CVE-2017-3641: MariaDB 10.0.32
- CVE-2017-3636: MariaDB 10.0.32
- CVE-2017-3600: MariaDB 10.0.28
- CVE-2017-3464: MariaDB 10.0.31
- CVE-2017-3456: MariaDB 10.0.31
- CVE-2017-3453: MariaDB 10.0.31
- CVE-2017-3318: MariaDB 10.0.29
- CVE-2017-3317: MariaDB 10.0.29
- CVE-2017-3313: MariaDB 10.0.30
- CVE-2017-3312: MariaDB 10.0.29
- CVE-2017-3309: MariaDB 10.0.31
- CVE-2017-3308: MariaDB 10.0.31
- CVE-2017-3302: MariaDB 10.0.30
- CVE-2017-3291: MariaDB 10.0.29
- CVE-2017-3265: MariaDB 10.0.29
- CVE-2017-3258: MariaDB 10.0.29
- CVE-2017-3257: MariaDB 10.0.29
- CVE-2017-3244: MariaDB 10.0.29
- CVE-2017-3243: MariaDB 10.0.29
- CVE-2017-3238: MariaDB 10.0.29
- CVE-2017-10384: MariaDB 10.0.32
- CVE-2017-10379: MariaDB 10.0.32
- CVE-2017-10378: MariaDB 10.0.33
- CVE-2017-10286: MariaDB 10.0.32
- CVE-2017-10268: MariaDB 10.0.33
- CVE-2016-9843: MariaDB 10.0.37
- CVE-2016-8283: MariaDB 10.0.28
- CVE-2016-7440: MariaDB 10.0.28
- CVE-2016-6664: MariaDB 10.0.29
- CVE-2016-6663: MariaDB 10.0.28
- CVE-2016-6662: MariaDB 10.0.27
- CVE-2016-5630: MariaDB 10.0.27
- CVE-2016-5629: MariaDB 10.0.28
- CVE-2016-5626: MariaDB 10.0.28
- CVE-2016-5624: MariaDB 10.0.28
- CVE-2016-5616: MariaDB 10.0.28
- CVE-2016-5612: MariaDB 10.0.27
- CVE-2016-5584: MariaDB 10.0.28
- CVE-2016-5483: MariaDB 10.0.28
- CVE-2016-5444: MariaDB 10.0.25
- CVE-2016-5440: MariaDB 10.0.26
- CVE-2016-3615: MariaDB 10.0.26
- CVE-2016-3521: MariaDB 10.0.26
- CVE-2016-3492: MariaDB 10.0.28
- CVE-2016-3477: MariaDB 10.0.26
- CVE-2016-3471: MariaDB 10.0.22
- CVE-2016-3459: MariaDB 10.0.25
- CVE-2016-3452: MariaDB 10.0.25
- CVE-2016-2047: MariaDB 10.0.23
- CVE-2016-0668: MariaDB 10.0.24
- CVE-2016-0666: MariaDB 10.0.25
- CVE-2016-0655: MariaDB 10.0.25
- CVE-2016-0651: MariaDB 10.0.23
- CVE-2016-0650: MariaDB 10.0.24
- CVE-2016-0649: MariaDB 10.0.24
- CVE-2016-0648: MariaDB 10.0.25
- CVE-2016-0647: MariaDB 10.0.25
- CVE-2016-0646: MariaDB 10.0.24
- CVE-2016-0644: MariaDB 10.0.24
- CVE-2016-0643: MariaDB 10.0.25
- CVE-2016-0642: MariaDB 10.0.23
- CVE-2016-0641: MariaDB 10.0.24
- CVE-2016-0640: MariaDB 10.0.24
- CVE-2016-0616: MariaDB 10.0.23
- CVE-2016-0610: MariaDB 10.0.22
- CVE-2016-0609: MariaDB 10.0.23
- CVE-2016-0608: MariaDB 10.0.23
- CVE-2016-0606: MariaDB 10.0.23
- CVE-2016-0600: MariaDB 10.0.23
- CVE-2016-0598: MariaDB 10.0.23
- CVE-2016-0597: MariaDB 10.0.23
- CVE-2016-0596: MariaDB 10.0.23
- CVE-2016-0546: MariaDB 10.0.23
- CVE-2016-0505: MariaDB 10.0.23
- CVE-2016-0502: MariaDB 10.0.4
- CVE-2015-7744: MariaDB 10.0.22
- CVE-2015-4913: MariaDB 10.0.22
- CVE-2015-4895: MariaDB 10.0.21
- CVE-2015-4879: MariaDB 10.0.21
- CVE-2015-4870: MariaDB 10.0.22
- CVE-2015-4866: MariaDB 10.0.18
- CVE-2015-4864: MariaDB 10.0.20
- CVE-2015-4861: MariaDB 10.0.22
- CVE-2015-4858: MariaDB 10.0.22
- CVE-2015-4836: MariaDB 10.0.22
- CVE-2015-4830: MariaDB 10.0.22
- CVE-2015-4826: MariaDB 10.0.22
- CVE-2015-4819: MariaDB 10.0.21
- CVE-2015-4816: MariaDB 10.0.21
- CVE-2015-4815: MariaDB 10.0.22
- CVE-2015-4807: MariaDB 10.0.22
- CVE-2015-4802: MariaDB 10.0.22
- CVE-2015-4792: MariaDB 10.0.22
- CVE-2015-4757: MariaDB 10.0.18
- CVE-2015-4752: MariaDB 10.0.20
- CVE-2015-3152: MariaDB 10.0.20
- CVE-2015-2648: MariaDB 10.0.20
- CVE-2015-2643: MariaDB 10.0.20
- CVE-2015-2620: MariaDB 10.0.20
- CVE-2015-2582: MariaDB 10.0.20
- CVE-2015-2573: MariaDB 10.0.17
- CVE-2015-2571: MariaDB 10.0.18
- CVE-2015-2568: MariaDB 10.0.17
- CVE-2015-2326: MariaDB 10.0.18
- CVE-2015-2325: MariaDB 10.0.18
- CVE-2015-0505: MariaDB 10.0.18
- CVE-2015-0501: MariaDB 10.0.18
- CVE-2015-0499: MariaDB 10.0.18
- CVE-2015-0441: MariaDB 10.0.17
- CVE-2015-0433: MariaDB 10.0.17
- CVE-2015-0432: MariaDB 10.0.16
- CVE-2015-0411: MariaDB 10.0.16
- CVE-2015-0391: MariaDB 10.0.13
- CVE-2015-0382: MariaDB 10.0.16
- CVE-2015-0381: MariaDB 10.0.16
- CVE-2015-0374: MariaDB 10.0.16
- CVE-2014-8964: MariaDB 10.0.18
- CVE-2014-6568: MariaDB 10.0.16
- CVE-2014-6564: MariaDB 10.0.13
- CVE-2014-6559: MariaDB 10.0.15
- CVE-2014-6555: MariaDB 10.0.15
- CVE-2014-6551: MariaDB 10.0.13
- CVE-2014-6530: MariaDB 10.0.13
- CVE-2014-6520: MariaDB 10.0.13
- CVE-2014-6507: MariaDB 10.0.15
- CVE-2014-6505: MariaDB 10.0.13
- CVE-2014-6500: MariaDB 10.0.15
- CVE-2014-6496: MariaDB 10.0.15
- CVE-2014-6495: MariaDB 10.0.13
- CVE-2014-6494: MariaDB 10.0.15
- CVE-2014-6491: MariaDB 10.0.15
- CVE-2014-6489: MariaDB 10.0.13
- CVE-2014-6484: MariaDB 10.0.13
- CVE-2014-6478: MariaDB 10.0.13
- CVE-2014-6474: MariaDB 10.0.13
- CVE-2014-6469: MariaDB 10.0.15
- CVE-2014-6464: MariaDB 10.0.15
- CVE-2014-6463: MariaDB 10.0.13
- CVE-2014-4287: MariaDB 10.0.13
- CVE-2014-4274: MariaDB 10.0.13
- CVE-2014-4260: MariaDB 10.0.12
- CVE-2014-4258: MariaDB 10.0.12
- CVE-2014-4243: MariaDB 10.0.9
- CVE-2014-4207: MariaDB 10.0.12
- CVE-2014-3470: MariaDB 10.0.13
- CVE-2014-2494: MariaDB 10.0.12
- CVE-2014-2440: MariaDB 10.0.11
- CVE-2014-2438: MariaDB 10.0.9
- CVE-2014-2436: MariaDB 10.0.11
- CVE-2014-2432: MariaDB 10.0.9
- CVE-2014-2431: MariaDB 10.0.11
- CVE-2014-2430: MariaDB 10.0.11
- CVE-2014-2419: MariaDB 10.0.9
- CVE-2014-0437: MariaDB 10.0.8
- CVE-2014-0420: MariaDB 10.0.8
- CVE-2014-0412: MariaDB 10.0.8
- CVE-2014-0402: MariaDB 10.0.7
- CVE-2014-0401: MariaDB 10.0.8
- CVE-2014-0393: MariaDB 10.0.7
- CVE-2014-0386: MariaDB 10.0.7
- CVE-2014-0384: MariaDB 10.0.9
- CVE-2014-0224: MariaDB 10.0.13
- CVE-2014-0221: MariaDB 10.0.13
- CVE-2014-0198: MariaDB 10.0.13
- CVE-2014-0195: MariaDB 10.0.13
- CVE-2013-5908: MariaDB 10.0.8
- CVE-2013-5891: MariaDB 10.0.7
- CVE-2013-5807: MariaDB 10.0.5
- CVE-2013-3839: MariaDB 10.0.5
- CVE-2013-3812: MariaDB 10.0.4
- CVE-2013-3809: MariaDB 10.0.4
- CVE-2013-3808: MariaDB 10.0.3
- CVE-2013-3805: MariaDB 10.0.3
- CVE-2013-3804: MariaDB 10.0.4
- CVE-2013-3802: MariaDB 10.0.4
- CVE-2013-3801: MariaDB 10.0.3
- CVE-2013-3794: MariaDB 10.0.3
- CVE-2013-3793: MariaDB 10.0.4
- CVE-2013-3783: MariaDB 10.0.4
- CVE-2013-2392: MariaDB 10.0.3
- CVE-2013-2391: MariaDB 10.0.3
- CVE-2013-2389: MariaDB 10.0.3
- CVE-2013-2378: MariaDB 10.0.2
- CVE-2013-2376: MariaDB 10.0.3
- CVE-2013-2375: MariaDB 10.0.3
- CVE-2013-1861: MariaDB 10.0.4
- CVE-2013-1555: MariaDB 10.0.2
- CVE-2013-1552: MariaDB 10.0.2
- CVE-2013-1544: MariaDB 10.0.3
- CVE-2013-1532: MariaDB 10.0.3
- CVE-2013-1531: MariaDB 10.0.1
- CVE-2013-1526: MariaDB 10.0.2
- CVE-2013-1523: MariaDB 10.0.2
- CVE-2013-1521: MariaDB 10.0.2
- CVE-2013-1512: MariaDB 10.0.2
- CVE-2013-1511: MariaDB 10.0.3
- CVE-2013-1506: MariaDB 10.0.2
- CVE-2013-1502: MariaDB 10.0.3
- CVE-2013-0389: MariaDB 10.0.1
- CVE-2013-0386: MariaDB 10.0.1
- CVE-2013-0385: MariaDB 10.0.1
- CVE-2013-0384: MariaDB 10.0.1
- CVE-2013-0383: MariaDB 10.0.1
- CVE-2013-0371: MariaDB 10.0.1
- CVE-2013-0368: MariaDB 10.0.1
- CVE-2013-0367: MariaDB 10.0.1
- CVE-2012-5627: MariaDB 10.0.1
- CVE-2012-5615: MariaDB 10.0.13, MariaDB 10.0.1
- CVE-2012-5614: MariaDB 10.0.2
- CVE-2012-5612: MariaDB 10.0.1
- CVE-2012-5611: MariaDB 10.0.1
- CVE-2012-5096: MariaDB 10.0.1
- CVE-2012-4414: MariaDB 10.0.0 [2]
- CVE-2012-1705: MariaDB 10.0.1
- CVE-2012-1702: MariaDB 10.0.1
- CVE-2012-0578: MariaDB 10.0.1
- CVE-2012-0574: MariaDB 10.0.1
- CVE-2012-0572: MariaDB 10.0.1
- CVE-2010-5298: MariaDB 10.0.13
Comparison with MySQL
See System Variable Differences Between MariaDB 10.0 and MySQL 5.6