Changes & Improvements in MariaDB 10.2

MariaDB 10.2 is the previous major stable version. The first stable release was in May 2017, and it will be supported until May 2022.

For details on upgrading from MariaDB 10.1, see Upgrading from MariaDB 10.1 to 10.2.

The following lists the major new features in MariaDB 10.2:

Implemented Features

InnoDB as Default

Syntax / General Features

Incompatible Changes

  • TokuDB has been split into a separate package, mariadb-plugin-tokudb.
  • SQL_MODE has been changed; in particular, NOT NULL fields with no default will no longer fall back to a dummy value for inserts which do not specify a value for that field.
  • Replication from legacy MySQL servers may require setting binlog_checksum to NONE.
  • New reserved words: OVER, RECURSIVE, and ROWS.


Replication / Binary Log


Information Schema


  • EXPLAIN FORMAT=JSON now shows outer_ref_condition field which contains the condition that the(?) SELECT checks on each re-execution (MDEV-9652)
  • EXPLAN FORMAT=JSON now shows sort_key field which shows the sort criteria used by filesort operation. (commit 2078392)
  • EXPLAIN used to show incorrect information about how the optimizer resolved ORDER BY clause or Distinct. This was a long-standing problem with roots back in MySQL. Now, after MDEV-8646 and related fixes, the problem doesn't exist anymore. (For test cases, see MDEV-7982, MDEV-8857, MDEV-7885, MDEV-326)


  • Connection setup was made faster by moving creation of THD to new thread (MDEV-6150)
  • Pushdown conditions into non-mergeable views/derived tables (MDEV-9197, condition-pushdown-into-derived-table-optimization ) — Original code from Galina Shalygina
  • ANALYZE TABLE has been re-implemented so as not to lock the entire table when collecting engine independent statistics (MDEV-7901)
  • Internal CRC32 routines use the optimized implementation on Power8 — MDEV-9872
  • Table cache can automatically partition itself as needed to reduce the contention (MDEV-10296)


  • 88 new NO PAD collations added. In NO PAD collations, end spaces are significant in comparisons (MDEV-9711) — Original code from Daniil Medvedev
  • MariaDB now works when started with a MySQL 5.7.6+ data directory (MDEV-11170)


System Variables

For a list of all new system variables, see System Variables Added in MariaDB 10.2. Variable changes include:

Status Variables

For a list of all new status variables, see Status Variables Added in MariaDB 10.2.


Other Changes

  • Added support for OpenSSL 1.1 and LibreSSL (MDEV-10332)
  • Persistent AUTO_INCREMENT for InnoDB (MDEV-6076)
  • "fast mutexes" have been removed. These aren't faster than normal mutexes, and have been disabled by default for years (MDEV-8111)
  • Old GPL client library is gone; now MariaDB Server comes with the LGPL Connector/C client library (MDEV-9055)
  • MariaDB is no longer compiled with jemalloc
  • TokuDB is now a separate package, not part of the server RPM (because TokuDB still needs jemalloc).
  • Upgrading to a new major release no longer requires setting innodb_fast_shutdown to 0. Omitting it can make the upgrade process a lot faster. (MDEV-12289)

Comparison with MySQL

List of All MariaDB 10.2 Releases

See Also


Comments loading...