0% found this document useful (0 votes)
87 views18 pages

Mariadb Platform X5 vs. Mysql Enterprise Edition 8: September 2020

This document provides a comparison of the MariaDB Platform X5 and MySQL Enterprise Edition 8 enterprise databases. It summarizes their components, features, and capabilities in areas like development, scalability, high availability, disaster recovery, and security. While the databases share many common features and functions, particularly around JSON support, they also have some unique features and capabilities, such as MariaDB's temporal tables and MySQL's JSON Schema validation functions.

Uploaded by

Ivy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
87 views18 pages

Mariadb Platform X5 vs. Mysql Enterprise Edition 8: September 2020

This document provides a comparison of the MariaDB Platform X5 and MySQL Enterprise Edition 8 enterprise databases. It summarizes their components, features, and capabilities in areas like development, scalability, high availability, disaster recovery, and security. While the databases share many common features and functions, particularly around JSON support, they also have some unique features and capabilities, such as MariaDB's temporal tables and MySQL's JSON Schema validation functions.

Uploaded by

Ivy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

MARIADB

PLATFORM X5
VS. MYSQL
ENTERPRISE
EDITION 8
September 2020

WHITEPAPER
TABLE OF CONTENTS
3 INTRODUCTION

4 SOFTWARE
4 COMPONENTS
4 PLUGINS

5 COMPARISON
5 DEVELOPMENT
10 SCALABILITY AND PERFORMANCE
11 HIGH AVAILABILITY
12 DISASTER RECOVERY
12 SECURITY

15 MYSQL UNIQUE FEATURES


9 MYSQL DOCUMENT STORE

16 MARIADB UNIQUE FEATURES


16 TEMPORAL TABLES
16 ORACLE DATABASE COMPATIBILITY
16 FEDERATION
16 COLUMNAR STORAGE FORMAT
16 DISTRIBUTED SQL

17 SUMMARY

18 CONCLUSION

MariaDB Platform X5 vs. MySQL Enterprise Edition 8 WHITEPAPER


INTRODUCTION
MariaDB and MySQL are two of the most popular open source relational databases in the world.
MariaDB was created as a fork of MySQL by the founder of MySQL itself, Michael “Monty” Widenius,
in order to ensure open and transparent development after MySQL was acquired by Oracle. However,
since then, MariaDB and MySQL have become separate databases with different features, and with
similar features having different implementations.

MariaDB continues to be compatible with the MySQL protocol and MySQL clients, and has replaced MySQL in leading
Linux distributions such as Debian, Ubuntu, Fedora, Red Hat Enterprise Linux/CentOS, SUSE Linux Enterprise Server/
openSUSE and OpenBSD/FreeBSD.

However, MariaDB and MySQL have different product strategies and visions. MariaDB embraces community participation
and contributions, and while MySQL is focused on InnoDB as its primary storage engine, MariaDB continues to advance
the pluggable storage engine architecture it shares with MySQL. MariaDB brings together multiple storage engines to
support a broad set of use cases, with each engine optimized for a specific workload.

3 MariaDB Platform X5 vs. MySQL Enterprise Edition 8 WHITEPAPER


SOFTWARE
MariaDB and MySQL both have enterprise offerings: MariaDB Platform and MySQL Enterprise Edition. These enterprise
offerings include software not available to the community, a combination of plugins and additional tools. This white paper
compares the enterprise offerings of MariaDB and MySQL and covers the full suite of features and capabilities provided
by them.

Components

MariaDB MySQL

Database MariaDB Enterprise Server MySQL

Database router/proxy MariaDB MaxScale MySQL Router*

Backup/restore tool MariaDB Enterprise Backup MySQL Enterprise Backup

Monitoring SQL Diagnostic Manager MySQL Monitor

SQL IDE SQLyog MySQL Workbench*

Plugins

MariaDB MySQL

Auditing MariaDB Enterprise Audit MariaDB Enterprise Audit

Clustering MariaDB Enterprise Cluster MySQL Group Replication*

Data masking MariaDB MaxScale MySQL Enterprise Data Masking

Database firewall MariaDB MaxScale MySQL Enterprise Firewall

Encryption functions Yes* MySQL Enterprise Encryption

Federation MariaDB Enterprise Federation N/A

HashiCorp Vault plugin Yes* Yes

PAM/LDAP authentication Yes* MySQL Enterprise Security

Thread pool Yes* MySQL Enterprise Thread Pool

*Available without an enterprise subscription.

4 MariaDB Platform X5 vs. MySQL Enterprise Edition 8 WHITEPAPER


COMPARISON
This white paper compares the latest enterprise versions of MariaDB and MySQL Enterprise 8. The comparison is made
across five categories: development, scalability and performance, high availability, disaster recovery and security.
It highlights some of the features and capabilities they have in common, but focuses on the differences. After a
comparison of features in these standard enterprise categories, it covers the most notable unique features in each
database.

Development
JSON
MariaDB and MySQL both support JSON, and implement many of the same JSON functions. However, whereas MySQL
stores JSON documents as binary objects, MariaDB stores them as strings.

Note:
If MariaDB is configured to replicate from MySQL as part of the migration process, statement-based replication must be
used if any of the MySQL tables being replicated contain JSON columns.

Standard functions

MariaDB and MySQL both support most of the nine (9) JSON functions defined in standard SQL (SQL:2016). JSON_
TABLE is planned for the next major version of MariaDB. When it is released, MariaDB will have implemented all of the
standard SQL functions for JSON.

Note:
SQL:2016 defines the IS JSON syntax for ensuring JSON columns contain valid JSON documents, but MariaDB and MySQL
implemented JSON_VALID instead.

MariaDB MySQL

JSON_ARRAY  

JSON_ARRAY_AGG  

JSON_EXISTS  

JSON_OBECT  

JSON_OBJECT_AGG  

JSON_QUERY  

JSON_VALUE  

JSON_TABLE  

IS JSON JSON_VALID JSON_VALID

5 MariaDB Platform X5 vs. MySQL Enterprise Edition 8 WHITEPAPER


Common functions

In addition the standard SQL functions for JSON, MariaDB and MySQL both support many of the same utility functions
for working with JSON documents.

• JSON_ARRAY_APPEND • JSON_KEYS • JSON_REPLACE

• JSON_ARRAY_INSERT • JSON_LENGTH • JSON_SEARCH

• JSON_CONTAINS • JSON_MERGE • JSON_SET

• JSON_CONTAINS_PATH • JSON_MERGE_PATCH • JSON_TYPE

• JSON_DEPTH • JSON_MERGE_PRESERVE • JSON_UNQUOTE

• JSON_EXTRACT • JSON_QUOTE • JSON_VALID

• JSON_INSERT • JSON_REMOVE

Differentiating functions

However, there are some functions available in MariaDB that are not in MySQL and vice versa. MySQL 8, in particular,
introduced several notable JSON functions, including two operators as aliases/shorthands for JSON_EXTRACT (with
and without JSON_UNQUOTE) and two functions JSON Schema validation.

Note:
MariaDB’s JSON_DETAILED function and MySQL’s JSON_PRETTY function do the same thing, format JSON documents so
they are easy to read.

MariaDB MySQL

->  

->>  

JSON_COMPACT  

JSON_DETAILED  JSON_PRETTY

JSON_LOOSE  

JSON_OVERLAPS  

JSON_PRETTY JSON_DETAILED 

JSON_SCHEMA_VALID  

JSON_SCHEMA_VALIDATION_REPORT  

JSON_STORAGE_FREE  

JSON_STORAGE_SIZE  

MEMBER OF  

6 MariaDB Platform X5 vs. MySQL Enterprise Edition 8 WHITEPAPER


SQL
MariaDB and MySQL both support standard SQL, but MariaDB has implemented much more.

Schema

In terms of database objects, MariaDB 10.3 introduced sequences, invisible columns and temporal tables – all of which
are not available in MySQL.

MariaDB MySQL

Sequences  

Generated columns  

Invisible columns  

Temporal tables  

Views  

Indexes

MariaDB and MySQL both support standard indexes, but MySQL 8 added support for descending, functional and
invisible indexes as well.

MariaDB MySQL

Descending 

Functional  

Invisible  

Queries

MariaDB and MySQL both support a lot of standard SQL. MySQL 8 made progress catching up with MariaDB by adding
common table expressions (CTEs) and window functions, but does not yet support the INTERSECT and EXCEPT set
operators introduced in MariaDB 10.3

Further, they both provide extended support in different areas. MariaDB 10.5 improved its support for CTEs by adding
support for CYCLE while MySQL 8 improved its support for roll ups by adding GROUPING and allowing WITH ROLLUP
to be used with ORDER BY.

MariaDB MySQL

VALUES  

(table value constructors)

UNION [ALL|DISTINCT] (set operators)  

7 MariaDB Platform X5 vs. MySQL Enterprise Edition 8 WHITEPAPER


MariaDB MySQL

INTERSECT [ALL|DISTINCT] (set operators)  

EXCEPT [ALL|DISTINCT] (set operators)  

WITH ROLLUP (rollups)  

WITH ROLLUP ORDER BY (rollups)  

GROUPING (rollups)  

OVER and WINDOW (window functions)  

LATERAL (lateral derived tables)  

WITH [RECURSIVE] (common table expressions)  


WITH [RECURSIVE] CYCLE
 
(common table expressions)

Aggregate functions

MariaDB and MySQL both support many of the same out-of-the-box aggregate functions. However, MariaDB supports
correlation and linear regression functions as well – MySQL does not.

Standard deviation and variance

MariaDB MySQL

STD  

STDDEV  

STDDEV_POP  

STDDEV_SAMP  

VARIANCE  

VAR_POP  

VAR_SAMP  

8 MariaDB Platform X5 vs. MySQL Enterprise Edition 8 WHITEPAPER


Correlation and linear regression

MariaDB MySQL

CORR  

COVAR_POP  

COVAR_SAMP  

REGR_AVGX  

REGR_AVGY  

REGR_COUNT  

REGR_INTERCEPT  

REGR_R2  

REGR_SLOPE  

REGR_SXX  

REGR_SXY  

REGR_SYY  

Window functions

MariaDB and MySQL both support many of the same out-of-the-box windows functions. However, MariaDB supports
inverse distribution functions as well – MySQL does not.

Value

MariaDB MySQL

FIRST_VALUE  

LAG  

LAST_VALUE  

LEAD  

NTH_VALUE  

9 MariaDB Platform X5 vs. MySQL Enterprise Edition 8 WHITEPAPER


Ranking

MariaDB MySQL

CUME_DIST  

DENSE_RANK  

NTILE  

PERCENT_RANK  

RANK  

ROW_NUMBER  

Inverse distribution

MariaDB MySQL

MEDIAN  

PERCENTILE_CONT  

PERCENTILE_DISC  

Scalability and performance


MariaDB and MySQL both support basic scalability and performance feature (e.g., table partitioning and
compression). However, MariaDB has more advanced features via MaxScale (database proxy/query router) and the
Spider (transparent sharding) and Xpand (distributed SQL) smart engines.

MaxScale performs transparent read/write splitting and adaptive load balancing, neither of which are available in
MySQL Router. In addition, MaxScale can cache query results in Redis to reduce the workload on the database and
improve query performance.

Spider enables transparent sharding and/or parallel query, giving MariaDB the ability to utilize multiple database
instances and/or multiple CPU cores per database instance to execute queries with linear scalability.

Xpand provides MariaDB with fully distributed SQL, and is capable of scaling to millions of transactions per second
with a shared-nothing architecture on commodity hardware, on premises or in the cloud. Further, Xpand is elastic,
allowing database instances to be added or removed on demand.

10 MariaDB Platform X5 vs. MySQL Enterprise Edition 8 WHITEPAPER


MariaDB MySQL

Table/row compression  

Column compression  

Log compression  

Partitioning  

Parallel query  

Query result caching via Redis  

Read/write splitting  

Casual reads  

Sharding  

Distributed SQL  

High availability
MariaDB and MySQL both support replication (asynchronous and semi-synchronous), but whereas MariaDB includes
automatic failover for high availability, MySQL does not. However, both MariaDB and MySQL can provide continuous
availability with multi-master clustering and dynamic query routing.

MariaDB multi-master clustering is based on Galera Cluster, a robust, mature and proven solution that’s been used
in production for years. MySQL introduced group replication in the previous major release (MySQL 5.7), but it lacks
advanced clustering features such as full state transfer for adding new database instances, automatic rejoin for
recovered database instances and streaming replication for large transactions.

MariaDB MySQL

Replication (async and semi-sync)  

Replication with automatic failover  

Multi-master clustering  

Connection migration  

Session restore  

Transaction replay  

11 MariaDB Platform X5 vs. MySQL Enterprise Edition 8 WHITEPAPER


Disaster recovery
MariaDB and MySQL both support online backups and point-in-time restore. However, MariaDB supports point-in-
time rollback (i.e., Flashback) as well, allowing DBAs to rewind the database by rolling back recent transactions rather
than restoring from a backup.

MariaDB MySQL

Online backups  

Full, incremental and partial backups  

Online partial restore  

Encrypted backups  

Compressed backups  

Point-in-time restore  

Point-in-time rollback  

Delayed replicas  

Security
MariaDB and MySQL provide many of the same enterprise security features, but there are some differences in the
implementations and MariaDB offers more advanced features for database and data protection.

Encryption

MariaDB and MySQL both support the same core encryption features, including HashiCorp Vault plugins for external
key management.

MariaDB MySQL

Encrypted tables and logs  

External key management  

Encrypted connections  

Reload SSL/TLS context  

12 MariaDB Platform X5 vs. MySQL Enterprise Edition 8 WHITEPAPER


Authentication

MariaDB and MySQL both support the same core authentication features. However, MySQL 8 introduced password
reuse policies. This feature is not yet available in MariaDB.

MariaDB MySQL

PAM/LDAP/Kerberos/NTLM authentication  

User/group mapping  

Password expiration  

Password reuse policies  

Password strength validation  

Account locking  

Authorization

MariaDB and MySQL both support the same core authorization features. However, MySQL 8 introduced partial
revokes. This feature is planned for the next major version of MariaDB.

MariaDB MySQL

Roles  

Privileges  

Partial revokes  

User resource limits  

13 MariaDB Platform X5 vs. MySQL Enterprise Edition 8 WHITEPAPER


Auditing

MariaDB and MySQL both support auditing, but with some differences. MariaDB can write to a file or to the syslog.
MySQL can only write to a file, but supports JSON and XML formats whereas MariaDB uses a CSV format. In addition,
MySQL supports audit log compression and encryption.

MariaDB MySQL

File output – CSV format  

File output – JSON format  

File output – XML format  

Syslog output  

JSON filter/rule definitions  

Custom events  

Encryption  

Compression  

Database and data protection

MariaDB and MySQL both have database firewall, but MariaDB offers many more advanced database and data
protection features, including dynamic data masking to hide sensitive and/or personally identifiable information in
query results and both query throttling and query result limiting to protect the database from denial-of-service (DoS)
attacks.

MariaDB MySQL

Dynamic data masking  

Dynamic data obfuscation  

Database firewall  

Query throttling  

Query result limiting  

14 MariaDB Platform X5 vs. MySQL Enterprise Edition 8 WHITEPAPER


MYSQL UNIQUE FEATURES
MySQL Document Store
MySQL Document Store expands MySQL’s JSON support with the MySQL X Protocol and X DevAPI. The X DevAPI
allows developers to store JSON documents in collections rather than tables, and to read and write JSON documents
via CRUD operations instead of SQL queries.

15 MariaDB Platform X5 vs. MySQL Enterprise Edition 8 WHITEPAPER


MARIADB UNIQUE FEATURES
Temporal tables
MariaDB supports all three types of temporal tables defined in the SQL standard: system-versioned tables,
application-time period tables and bitemporal tables.

With system-versioned tables, the database creates a new row whenever its data is modified (i.e., updated or
deleted), maintaining a complete version history of every row. It enables DBAs and/or applications to query table
data from a previous point in time.

With application-time period tables, applications specify the start and end time for when a row is valid.

Oracle Database compatibility


MariaDB tables can be created using Oracle Database data types, and can execute stored procedures written in
Oracle PL/SQL. Oracle Database compatibility simplifies migration to MariaDB, enabling DBAs to “lift and shift”
Oracle Database tables, package and stored procedures. In addition, MariaDB supports Oracle Database syntax for
sequences.

Federation
The MariaDB Enterprise Federation plugin can be used to access tables in other databases through MariaDB. Unlike
similar plugins for MySQL, it is not limited to remote MariaDB databases. It access remote databases, open source or
proprietary, using standard ODBC connections.

Columnar storage format


The MariaDB ColumnStore plugin provides MariaDB with a columnar storage format and massively parallel
processing for interactive, ad hoc analytics on massive data sets, removing the need to use a separate data
warehouse for analytics. However, MariaDB is not limited to using one storage format or the other. MariaDB
schemas can have row tables for transaction processing and columnar tables for analytics, or store data in both row
and columnar formats, enabling it to support applications requiring smart transactions (i.e., hybrid transactional/
analytical processing).

Distributed SQL
The MariaDB Xpand plugin provides MariaDB with fully distributed SQL, enabling it to scale out to millions of
transactions per second. Xpand tables and indexes are partitioned, with different partitions stored on different
database instances, modified via distributed transactions and accessed via standard SQL. Further, Xpand is highly
available, maintaining at least three (3) copies of a partition, and elastic, automatically rebalancing data when
database instances are added and replacing lost partitions when database instances are removed.

16 MariaDB Platform X5 vs. MySQL Enterprise Edition 8 WHITEPAPER


SUMMARY
Benefits of MariaDB Benefits of MySQL
• Temporal tables • MySQL Document Store

• Oracle Database compatibility • JSON Schema validation

• Federation • Function, descending and invisible indexes

• Columnar storage format • Roll ups with grouping and ordering

• Distributed SQL • Lateral derived tables

• Sequences • Password reuse policies

• Invisible columns • Partial revokes

• INTERSECT/EXCEPT • JSON/XML audit log formats

• WITH [RECURSIVE] CYCLE • Audit log encryption and compression

• Correlation and linear regression functions • Custom audit events

• Inverse distribution functions

• Column compression

• Parallel query

• Query result caching via Redis

• Read/write splitting

• Casual reads

• Sharding

• Replication with automatic failover

• Connection migration

• Session restore

• Transaction replay

• Point-in-time rollback (i.e., Flashback)

• Dynamic data masking

• Query throttling

• Query result limiting

17 MariaDB Platform X5 vs. MySQL Enterprise Edition 8 WHITEPAPER


CONCLUSION
MariaDB and MySQL started from the same place, but in recent years have become separate databases.
MySQL 8 caught up to MariaDB in a number of ways, but MariaDB continues to innovate and release much
faster than MySQL. And while MySQL has incrementally improved its transactional capabilities, MariaDB has
expanded its own to support data warehousing/analytics and distributed SQL too.

For enterprise organizations looking to embrace open source and migrate off of proprietary databases such as Oracle
Database, Microsoft SQL Server and IBM Db2, MariaDB provides the most powerful and most capable enterprise
open source alternative, complete with Oracle Database compatibility, columnar storage for scalable, high-
performance analytics and distributed SQL for scale out transaction processing.

18 MariaDB Platform X5 vs. MySQL Enterprise Edition 8 WHITEPAPER

You might also like