All pages
Powered by GitBook
1 of 1

Loading...

MariaDB versus MySQL - Features

MariaDB Corporation has a MariaDB vs MySQL white paper available for download.

See also MariaDB vs MySQL - Compatibility

Differences Per Release

For differences between specific releases, see

  • Incompatibilities and Feature Differences Between MariaDB Rolling and MySQL 8.0

  • For unmaintained versions, see

For a detailed breakdown of system variable differences, see:

For a detailed breakdown of function differences, see:

More Storage Engines

In addition to the standard , , , , , and storage engines, the following are also included with MariaDB Source and Binary packages:

  • , a column oriented storage engine optimized for Data warehousing.

  • , a storage engine with great compression, in 10.2

  • , MyISAM replacement with better caching.

  • (drop-in replacement for Federated)

Speed Improvements

  • MariaDB now provides much faster privilege checks for setups with many user accounts or many database

  • The new command allows SSL certificates to be reloaded without restarting the server

  • Many optimizer enhancements in . are now finally usable. The complete list and a comparison with MySQL is . A benchmark can be found .

  • Faster and safer replication:. This makes many setups that use replication and lots of updates

Extensions & New Features

We've added a lot of new features to MariaDB. If a patch or feature is useful, safe, and stable — we make every effort to include it in MariaDB. The most notable features are:

  • Support introduced for . Allows queries to access both current and historic data, aiding in managing retention, analysis and point-in-time recovery. — new in 10.3

  • can now run as Instant operations. Can also now change the ordering of columns. — new in 10.4

  • Support introduced for password expiration, using the — new in 10.4

  • In order to support the use of multiple authentication plugins for a single user, the system table has been retired in favor of the

For a full list, please see

Better Testing

  • More tests in the test suite.

  • Bugs in tests fixed.

  • 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 tested build)

Fewer Warnings and Fewer Bugs

  • Bugs are bad. Fix as many bugs as possible and try to not introduce new ones.

  • Compiler warnings are also bad. Eliminate as many compiler warnings as possible.

Truly Open Source

  • All code in MariaDB is released under GPL, LGPL or BSD.

  • MariaDB does not have closed source modules like the ones that can be found in MySQL Enterprise Edition. In fact, all the closed source features in MySQL 5.5 Enterprise Edition are found in the MariaDB open source version.

  • MariaDB client libraries (for C, for Java (JDBC), for Windows (ODBC)) are released under LGPL to allow linking with closed source software. MySQL client libraries are released under GPL that does not allow linking with closed source software.

  • MariaDB includes test cases for all fixed bugs. Oracle doesn't provide test cases for new bugs fixed in MySQL 5.5.

Related Links

System variable differences between MariaDB 10.11 and MySQL 8.0
  • System variable differences between MariaDB 10.6 and MySQL 8.0

  • For unmaintained versions, see System Variable Differences Between MariaDB and MySQL - Unmaintained Series

  • Function Differences Between MariaDB 10.11 and MySQL 8.0
  • Function Differences Between MariaDB 10.6 and MySQL 8.0

  • For unmaintained versions, see Function Differences Between MariaDB and MySQL - Unmaintained Series

  • (In MariaDB 5.2 and later. Disabled in MariaDB 5.5 only.)

  • (In MariaDB 5.2 and later)

  • in MariaDB 10.0 and later.

  • in MariaDB 10.0 and later.

  • in MariaDB 10.0 and later.

  • (In MariaDB 5.5 and later, removed in 10.6)

  • (In MariaDB 10.0, removed in 10.6)

  • .
  • — new in 10.0

  • for InnoDB asynchronous IO subsystem on Windows.

  • Indexes for the engine are faster. According to a simple test, 24% faster on INSERT for integer index and 60% faster for index on a CHAR(20) column. Fixed in MariaDB 5.5 and MySQL 5.7.

  • for MyISAM. Can speed up MyISAM tables with up to 4x — new in 5.2

  • for MyISAM and Aria. This can greatly improve shutdown time (from hours to minutes) if using a lot of MyISAM/Aria tables with delayed keys — new in 10.0.13

  • is faster.

  • We improved the performance of character set conversions (and removed conversions when they were not really needed). Overall speed improvement is 1-5 % (according to sql-bench) but can be higher for big result sets with all characters between 0x00-0x7f.

  • and even better in . This allows MariaDB to run with 200,000+ connections and with a notable speed improvement when using many connections.

  • Several speed improvements when a client connects to MariaDB. Many of the improvements were done in MariaDB 10.1 and MariaDB 10.2.

  • There are some improvements to the DBUG code to make its execution faster when debug is compiled in but not used.

  • Our use of the Aria storage engine enables faster complex queries (queries which normally use disk-based temporary tables). The storage engine is used for internal temporary tables, which should give 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. The test suite has been extended and now runs much faster than before, even though it tests more things.

  • system table. — new in 10.4
  • The is now the default on Unix-like systems. This represents a major change to authentication in MariaDB — new in 10.4

  • Support introduced for Optimizer Trace, which provides detailed information on how the Optimizer processes queries. To enable Optimizer Trace, set the system variable — new in 10.4

  • The MariaDB SQL/PL stored procedure dialect (enabled with sql_mode=ORACLE) now supports Oracle style packages. Support for the following statements are available: , , , , , — new in 10.3

  • Automatic collection of — new in 10.4

  • Support for the use of parentheses (brackets) for specifying precedence in the ordering of execution for statements and , (including the use of , , operations) — new in 10.4

  • Support for added to local stored procedure variables. — new in 10.3

  • Support added for functions — new in 10.3

  • Oracle compatible function is available — new in 10.3

  • Oracle compatible SEQUENCE support is provided — new in 10.3

  • Support for added to variables — new in 10.3

  • Support for added to stored routine parameters — new in 10.3

  • with parameters are now supported — new in 10.3

  • are now supported — new in 10.3

  • is now available for InnoDB — new in 10.3

  • are supported — new in 10.2

  • Number of supported decimals in has increased from 30 to 38 — new in 10.2

  • — new in 10.2

  • New statement. WITH is a common table expression that allows one to refer to a subquery expression many times in a query — new in 10.2

  • — new in 10.2

  • , including DEFAULT for BLOB and TEXT — new in 10.2

  • Added catchall for list partitions — new in 10.2

  • Oracle-style statement — new in 10.2

  • Several new — new in 10.2

  • — new in 5.2

  • — new in 5.3

  • — new in 5.2

  • — new in 5.3,

  • — new in 10.0.5,

  • — new in 5.2

  • — new in 5.2

  • — new in 5.2

  • . This makes replication notably faster! — new in 5.3

  • Added --rewrite-db option to change the used database — new in 5.2

  • for and — new in 5.3

  • Faster — new in 5.3

  • and faster calls — new in 5.3

  • support — new in 5.3

  • — new in 5.3

  • — new in 10.0

  • — new in 10.0

  • gives the EXPLAIN plan for a query running in another thread. — new in 10.0

  • — new in 10.0

  • (including ) — new in 10.0

  • — new in 10.0

  • MariaDB than MySQL.

  • All bugs and are public.

  • MariaDB is developed by the community in true open source spirit.

  • Incompatibilities and Feature Differences Between MariaDB 11.4 and MySQL 8.0
    Incompatibilities and Feature Differences Between MariaDB 11.3 and MySQL 8.0
    Incompatibilities and Feature Differences Between MariaDB 11.2 and MySQL 8.0
    Incompatibilities and Feature Differences Between MariaDB 10.11 and MySQL 8.0
    Incompatibilities and Feature Differences Between MariaDB 10.6 and MySQL 8.0
    Incompatibilities and Feature Differences Between MariaDB and MySQL - Unmaintained Series
    System Variable Differences Between MariaDB Rolling and MySQL 8.0
    System variable differences between MariaDB 11.4 and MySQL 8.0
    System variable differences between MariaDB 11.3 and MySQL 8.0
    System variable differences between MariaDB 11.2 and MySQL 8.0
    Function Differences Between MariaDB Rolling and MySQL 8.0
    Function Differences Between MariaDB 11.4 and MySQL 8.0
    Function Differences Between MariaDB 11.3 and MySQL 8.0
    Function Differences Between MariaDB 11.2 and MySQL 8.0
    ColumnStore
    MariaDB 5.3
    here
    here
    features for each release
    Compatiblity between MariaDB and MySQL
    more than 2x times faster
    Improvements
    Progress reporting
    development plans
    MyISAM
    BLACKHOLE
    CSV
    MEMORY
    ARCHIVE
    MERGE
    MyRocks
    Aria
    FederatedX
    FLUSH SSL
    Subqueries
    Group commit for the binary log
    System-versioned tables
    ALTER TABLE... DROP COLUMN
    user password expiry
    mysql.user
    Moving from MySQL
    Troubleshooting Installation Issues
    OQGRAPH
    SphinxSE
    CONNECT
    SEQUENCE
    Spider
    TokuDB
    Cassandra
    Parallel replication
    MEMORY(HEAP)
    Segmented Key Cache
    Adjustable hash size
    CHECKSUM TABLE
    Pool of Threads in MariaDB 5.1
    MariaDB 5.5
    Aria
    mysql.glob_priv
    unix_socket authentication plugin
    optimizer_trace
    CREATE PACKAGE
    CREATE PACKAGE BODY
    DROP PACKAGE
    DROP PACKAGE BODY
    SHOW CREATE PACKAGE
    SHOW CREATE PACKAGE BODY
    Engine Independent Table Statistics
    SELECT
    Table Value Operations
    UNION
    EXCEPT
    INTERSECT
    anchored data types
    Stored Aggregate
    SUBSTR()
    anchored data types
    stored routine
    anchored data types
    Cursors
    INVISIBLE columns
    Instant ADD COLUMN
    Window functions
    DECIMAL
    Recursive Common Table Expressions
    WITH
    CHECK CONSTRAINT
    DEFAULT expression
    EXECUTE IMMEDIATE
    JSON functions
    Microsecond Precision in Processlist
    Table Elimination
    Virtual Columns
    Microseconds in MariaDB
    Extended User Statistics
    KILL all queries for a user
    KILL QUERY ID - terminates the query by query_id, leaving the connection intact
    Pluggable Authentication
    Storage-engine-specific CREATE TABLE
    Enhancements to INFORMATION SCHEMA.PLUGINS table
    Group commit for the binary log
    mysqlbinlog
    ALTER TABLE
    LOAD DATA INFILE
    joins and subqueries
    HandlerSocket
    HANDLER
    Dynamic Columns
    GIS Functionality
    Multi-source replication
    Global Transaction ID
    SHOW EXPLAIN
    Roles
    PCRE Regular Expressions
    REGEXP_REPLACE()
    CREATE OR REPLACE
    DELETE ... RETURNING
    supports more collations

    This page is licensed: CC BY-SA / Gnu FDL