Aug
05
2022
--

How to Run MongoDB on Kubernetes: Solutions, Pros and Cons

This blog was originally published in August 2022 and was updated in January 2024.In this blog, we’ll examine the increasingly popular practice of deploying MongoDB on Kubernetes and explore various approaches to this setup. From direct deployments as a stateful application to utilizing specialized operators and considering cloud-based solutions, we’ll guide you through the key […]

Jan
04
2019
--

Amazon RDS Aurora MySQL – Differences Among Editions

differences MySQL aurora versions

differences MySQL aurora versionsAmazon Aurora with MySQL Compatibility comes in three editions which, at the time of writing, have quite a few differences around the features that they support.  Make sure you don’t assume the newer Aurora 2.x supports everything in Aurora 1.x. On the contrary, right now Aurora 1.x (MySQL 5.6 based) supports most Aurora features.  The serverless option was launched for this version, and it’s not based on the latest MySQL 5.7.  However, the serverless option, too, has its own set of limitations

I found a concise comparison of what is available in which Amazon Aurora edition hard to come by so I’ve created one.  The table was compiled based mostly on documentation research, so if you spot some mistakes please let me know and I’ll make a correction.

Please keep in mind, this is expected to change over time. For example Amazon Aurora 2.x was initially released without Performance_Schema support, which was enabled in later versions.

There seems to be lag porting Aurora features from MySQL 5.6 compatible to MySQL 5.7 compatible –  the current 2.x release does not include features introduced in Aurora 1.16 or later as per this document

A comparison table

MySQL 5.6 Based MySQL 5.7 Based Serverless MySQL 5.6 Based
Compatible to MySQL MySQL 5.6.10a MySQL 5.7.12 MySQL 5.6.10a
Aurora Engine Version 1.18.0 2.03.01 1.18.0
Parallel Query Yes No No
Backtrack Yes No No
Aurora Global Database Yes No No
Performance Insights Yes No No
SELECT INTO OUTFILE S3 Yes Yes Yes
Amazon Lambda – Native Function Yes No No
Amazon Lambda – Stored Procedure Yes Yes Yes
Hash Joins Yes No Yes
Fast DDL Yes Yes Yes
LOAD DATA FROM S3 Yes Yes No
Spatial Indexing Yes Yes Yes
Asynchronous Key Prefetch (AKP) Yes No Yes
Scan Batching Yes No Yes
S3 Backed Based Migration Yes No No
Advanced Auditing Yes Yes No
Aurora Replicas Yes Yes No
Database Cloning Yes Yes No
IAM database authentication Yes Yes No
Cross-Region Read Replicas Yes Yes No
Restoring Snapshot from MySQL DB Yes Yes No
Enhanced Monitoring Yes Yes No
Log Export to Cloudwatch Yes Yes No
Minor Version Upgrade Control Yes Yes Always On
Data Encryption Configuration Yes Yes Always On
Maintenance Window Configuration Yes Yes No

Hope this is helps with selecting which Amazon Aurora edition is right for you, when it comes to supported features.


Photo by Nathan Dumlao on Unsplash

Aug
28
2018
--

Webinar Wed 8/29: Databases in the Hosted Cloud

databases-in-the-cloud

databases-in-the-cloudPlease join Percona’s Chief Evangelist, Colin Charles on Wednesday, August 29th, 2018, as he presents Databases in the Hosted Cloud at 7:00 AM PDT (UTC-7) / 10:00 AM EDT (UTC-4).

 

Nearly everyone today uses some form of database in the hosted cloud. You can use hosted MySQL, MariaDB, Percona Server, and PostgreSQL in several cloud providers as a database as a service (DBaaS).

In this webinar, Colin Charles explores how to efficiently deploy a cloud database configured for optimal performance, with a particular focus on MySQL.

You’ll learn the differences between the various public cloud offerings for Amazon RDS including Aurora, Google Cloud SQL, Rackspace OpenStack DBaaS, Microsoft Azure, and Alibaba Cloud, as well as the access methods and the level of control you have. Hosting in the cloud can be a challenge but after today’s webinar, we’ll make sure you walk away with a better understanding of how you can leverage the cloud for your business needs.

Topics include:

  • Backup strategies
  • Planning multiple data centers for availability
  • Where to host your application
  • How to get the most performance out of the solution
  • Cost
  • Monitoring
  • Moving from one DBaaS to another
  • Moving from a DBaaS to your own hosted platform

Register Now.

The post Webinar Wed 8/29: Databases in the Hosted Cloud appeared first on Percona Database Performance Blog.

Aug
20
2018
--

Webinar Tues 8/21: MariaDB 10.3 vs. MySQL 8.0

MariaDB 10.3 vs MySQL 8.0

MariaDB 10.3 vs MySQL 8.0Please join Percona’s Chief Evangelist, Colin Charles on Tuesday, August 21st, 2018, as he presents MariaDB 10.3 vs. MySQL 8.0 at 7:00 AM PDT (UTC-7) / 10:00 PM EDT (UTC-4).

Are they syntactically similar? Where do these two languages differ? Why would I use one over the other?

MariaDB 10.3 is on the path of gradually diverging from MySQL 8.0. One obvious example is the internal data dictionary currently under development for MySQL 8.0. This is a major change to the way metadata is stored and used within the server: MariaDB doesn’t have an equivalent feature. Implementing this feature could mark the end of datafile-level compatibility between MySQL and MariaDB.

There are also non-technical differences between MySQL 8.0 and MariaDB 10.4, including:

  • Licensing: MySQL offers their code as open-source under the GPL, and provides the option of non-GPL commercial distribution in the form of MySQL Enterprise. MariaDB can only use the GPL because their work is derived from the MySQL source code under the terms of that license.
  • Support services: Oracle provides technical support, training, certification and consulting for MySQL, while MariaDB has their own support services. Some people prefer working with smaller companies, as traditionally it affords them more leverage as a customer.
  • Community contributions: MariaDB touts the fact that they accept more community contributions than Oracle. Part of the reason for this disparity is that developers like to contribute features, bug fixes and other code without a lot of paperwork overhead (and they complain about the Oracle Contributor Agreement). However, MariaDB has its own MariaDB Contributor Agreement — which more or less serves the same purpose.

Colin will take a look at some of the differences between MariaDB 10.3 and MySQL 8.0 and help answer some of the common questions our Database Performance Experts get about the two databases.

Register Now

The post Webinar Tues 8/21: MariaDB 10.3 vs. MySQL 8.0 appeared first on Percona Database Performance Blog.

Jul
18
2018
--

Webinar Wed 7/18: MariaDB 10.3 vs. MySQL 8.0

MariaDB 10.3 vs MySQL 8.0

MariaDB 10.3 vs MySQL 8.0Please join Percona’s Chief Evangelist, Colin Charles as he presents as he presents MariaDB 10.3 vs. MySQL 8.0 on Wednesday, July 18th, 2018, at 9:00 AM PDT (UTC-7) / 12:00 PM EDT (UTC-4).

 

Technical considerations

Are they syntactically similar? Where do these two databases differ? Why would I use one over the other?

MariaDB 10.3 is on the path of gradually diverging from MySQL 8.0. One obvious example is the internal data dictionary currently under development for MySQL 8.0. This is a major change to the way metadata is stored and used within the server, and MariaDB doesn’t have an equivalent feature. Implementing this feature could mark the end of datafile-level compatibility between MySQL and MariaDB.

Non-technical considerations

There are also non-technical differences between MySQL 8.0 and MariaDB 10.3, including:

Licensing: MySQL offers their code as open-source under the GPL, and provides the option of non-GPL commercial distribution in the form of MySQL Enterprise. MariaDB can only use the GPL, because their work is derived from the MySQL source code under the terms of that license.

Support services: Oracle provides technical support, training, certification and consulting for MySQL, while MariaDB has their own support services. Some people will prefer working with smaller companies, as traditionally it affords them more leverage as a customer.

Community contributions: MariaDB touts the fact that they accept more community contributions than Oracle. Part of the reason for this disparity is that developers like to contribute features, bug fixes and other code without a lot of paperwork overhead (and they complain about the Oracle Contributor Agreement). However, MariaDB has its own MariaDB Contributor Agreement — which more or less serves the same purpose.

Colin will take a look at some of the differences between MariaDB 10.3 and MySQL 8.0 and help answer some of the common questions our Database Performance Experts get about the two databases.

Register Now

The post Webinar Wed 7/18: MariaDB 10.3 vs. MySQL 8.0 appeared first on Percona Database Performance Blog.

Nov
02
2017
--

MariaDB vs MySQL: Key Differences and Use Cases

MariaDB vs MySQL

This blog post was originally published in November 2017 and was updated in June 2023.

In this blog, we’ll provide a comparison between MariaDB vs. MySQL (including Percona Server for MySQL).

Introduction: MariaDB vs. MySQL

The goal of this blog post is to evaluate, at a higher level, MariaDB vs. MySQL vs. Percona Server for MySQL side-by-side to better inform the decision making process. It is largely an unofficial response to published comments from the MariaDB Corporation.

It is worth noting that Percona Server for MySQL is a drop-in compatible branch of MySQL, where Percona contributes as much as possible upstream. MariaDB Server, on the other hand, is a fork of MySQL 5.5. They cherry-picked MySQL features and don’t guarantee drop-in compatibility any longer. Before we dive into the differences between MariaDB and MySQL, we will provide a thorough examination of each relational database management system (RDBMS).

What is MariaDB?

MariaDB is a popular SQL open source relational database management system that originated as a fork of MySQL after MySQL was acquired by Sun Microsystems in 2008 and later Oracle in 2010. Due to concerns in the open source software community about the future of MySQL after the acquisition, MariaDB was created in 2009 by Michael Widenius (one of the original creators of MySQL), who named the new software after his daughter Maria.  While originally designed to be a drop-in replacement for MySQL, it evolved into its own distinct database management system and is now maintained and supported by the MariaDB Foundation.

MariaDB retains compatibility with MySQL, offers support for different programming languages, including Python, PHP, Java, and Perl, and works with all major open source storage engines such as MyRocks, Aria, and InnoDB. It provides ACID (Atomicity, Consistency, Isolation, Durability) compliance, a set of database operations that ensure database transactions are processed accurately even when unexpected errors occur.

Critical features of MariaDB include robust security features like encryption at rest and in transit,  user authentication, and role-based access control (RBAC), as well as high-performance query execution, advanced indexing techniques, and replication, clustering, and sharding, ensuring scalability and high availability.

It continues to be developed and maintained by the open source community and remains free to use under the GNU General Public License.

Elevate your MariaDB environment with Percona Support for MariaDB.

 

Contact us to learn more!

 

The advantages and disadvantages of MariaDB

There are several advantages to using MariaDB as an RDBMS, including enhanced performance, robust security, better scalability, and compatibility with MySQL, but it also has a few drawbacks you should be aware of like a smaller user community than MySQL and possible compatibility issues with certain applications.

Advantages:

MariaDB is a highly advantageous option for a wide range of applications and organizations, offering numerous benefits that set it apart from other RDBMS:

  • A significant advantages of MariaDB is its performance. Via various optimization techniques, such as advanced query optimization, efficient indexing, and fast data processing, MariaDB can deliver excellent performance even when running heavy workloads.  In addition, MariaDB provides optimal scalability options, making it ideal for growing workloads. With features like horizontal scaling through sharding and clustering, organizations can seamlessly grow their database infrastructure, enabling effective distribution of data across multiple nodes to accommodate an increase in data volume while maintaining performance.
  • Enhanced security is another advantage MariaDB. It incorporates robust security features to protect your data, including encryption, authentication mechanisms, and role-based access control (RBAC) to prevent unauthorized access and other vulnerabilities.
  • And lastly, MariaDB’s compatibility with MySQL is a real advantage, especially for companies already utilizing MySQL. This allows for mostly seamless migrations of applications and databases from MySQL to MariaDB, meaning your DBAs and developers can utilize their MySQL knowledge to work in MariaDB.

Disadvantages:

While MariaDB is a popular and widely-used RDBMS, it can present some disadvantages to users that may not be present in others. Here are some potential drawbacks of using it:

  • Compared to MySQL, MariaDB has a smaller open source user and developer community. And while that community does continue to grow, the smaller community size may make it difficult to find specialized expertise or documentation for complex issues. In addition, there are fewer resources, plugins, libraries, third-party tools, and sources of support available than for other, more established database systems.
  • As mentioned earlier, MariaDB is mostly compatible with MySQL, but that doesn’t mean that certain applications will work perfectly with both. MariaDB has a less mature ecosystem than MySQL, so some tools and features specifically created for MySQL may not be fully supported in MariaDB. 
  • In addition, MariaDB sometimes lags behind other database systems in terms of implementing new features and abilities. If an organization requires the latest and greatest offerings in their RDBMS, DBAs and other users of MariaDB may find it difficult to utilize some database capabilities found in other, more mature systems.

What is MySQL?

MySQL is one of the most popular open source RDBMS used by organizations of all sizes due to its reliability, scalability, and performance. It supports multiple operating systems and platforms, making it an ideal choice for various applications. 

Some key features and functionalities of MySQL include:

  • Support for multiple storage engines, allowing users to choose what is suitable for their needs. InnoDB, the default engine, is known for its excellent transactional capabilities.
  • Strong data and access control security, ensuring the safeguarding and integrity of sensitive information.
  • Efficient data processing and indexing, making it optimal for executing queries and handling large datasets.
  • Cross-platform compatibility makes MySQL compatible with various operating systems, including Linux, Windows, macOS, and more.
  • Scalability and replication options that can improve performance and high availability.

An abundance of APIs and connectors, allowing seamless integration with prominent programming languages and frameworks.

Initially developed by MySQL AB in the mid-1990s, with time it became a central component of the LAMP stack (Linux, Apache, MySQL, PHP/Python/Perl) for web development efforts. In 2008, Sun Microsystems acquired MySQL AB, and then, in 2010, Oracle bought Sun Microsystems. This acquisition raised licensing concerns about the future of MySQL, with many users wondering if it would lead to a shift away from it being open source and available to the community. And while Oracle has continued maintaining MySQL Community Edition as a free, open source project, it offers an enterprise (paid) version as well.

Get the reliable MySQL support you need. Explore Percona Support for MySQL today!

The advantages and disadvantages of MySQL

MySQL offers advantages such as a large user base, community support, wide compatibility, and ease of use, but also has some disadvantages, including concerns over Oracle’s control of the project, inefficient handling of large datasets, and support for complex transactions.  

In this section, we will look at specific advantages and disadvantages of using MySQL.

Advantages:

One major advantage MySQL has over other RDBMS is the size of its user base and availability of community support. MySQL is the most popular database in the world and benefits from the knowledge, resources, and development from that user base.

Because of this popularity, MySQL also has a proven track record of being reliable and stable. It is always being tested and updated, providing for optimized performance and minimal failures. MySQL offers excellent scalability, so companies can grow their databases efficiently and easily, and it provides flexibility when it comes to platform compatibility. MySQL runs on Linux, macOS, Windows, and other operating systems, letting users choose the platform that works best for their infrastructure.

A wide range of tools and integrations help users manage and interact with MySQL efficiently, including graphical user interfaces such as phpMyAdmin, command-line interfaces such as MySQL Shell, monitoring tools such as Percona Monitoring and Management, connectors and APIs for seamless integration with the most popular programming languages, and backup and recovery solutions like mysqldump and Percona XtraBackup.

Disadvantages:

One disadvantage of MySQL is its performance limitations when dealing with large datasets or complex queries. MySQL is able to handle large amounts of data, but maintaining efficient and optimal performance as your database grows may cause issues.

Another disadvantage pertains to the licensing restrictions for specific features in MySQL. And while it is open source, some advanced features you may need might require commercial licenses. Be aware, those costs can add up quickly. 

Lastly, within the open source community, there are valid concerns about Oracle’s control over MySQL. As a commercial software company, it may prioritize development of proprietary (read: for a fee) offerings over freely-available open source developments from the community, effectively closing off the accessibility of the software to all for development and use.

Discover the crucial MySQL setting that can optimize your database performance – check out our blog now!

MariaDB vs. MySQL vs Percona Server for MySQL: General Comparisons

MariaDB, MySQL, and Percona Server for MySQL are all very popular choices for relational database management systems. In the chart below, we discuss the general protocols, features, scalability, security, and usability of each, compared to each other. Things to keep in mind as you read through the chart:

  • MariaDB is a community-developed fork of MySQL
  • MySQL is owned by Oracle
  • Percona Server for MySQL is a performance-focused variant of MySQL, providing additional optimizations and scalability features at no cost
MariaDB Server MySQL Percona Server for MySQL*
Protocols MySQL protocol, MariaDB Server extensions MySQL protocol over port 3306, X Protocol over port 33060 MySQL protocol over port 3306, X Protocol over port 33060
Community – Source Code Open Source Open Source Open Source
Community – Development Open Source, contributions via the new BSD license or signing the MariaDB Contributor Agreement (MCA) Open Source, contributions via signing the Oracle Contributor Agreement (OCA) Open Source
Community – Collaboration Mailing list, bugs system (Jira), IRC channel Mailing list, forums, bugs system Mailing list, forums, bugs system (Jira, Launchpad)
Core – Replication MariaDB Server replication, with own GTID, compatible only if MariaDB Server is a slave to MySQL, not vice versa MySQL replication with GTID MySQL replication with GTID
Core – Routing MariaDB MaxScale (Business Source License) MySQL Router (GPLv2) ProxySQL (GPLv3)
Core – Partitioning Standard, with extra engines like SPIDER/CONNECT that offer varying levels of support Standard Standard
Tool – Editing Webyog’s SQLYog for Microsoft Windows (MySQL Workbench notes an incompatible server) MySQL Workbench for Microsoft Windows, macOS, and Linux MySQL Workbench for Microsoft Windows, macOS, and Linux
Tool – Monitoring Webyog’s Monyog MySQL Enterprise Monitor Percona Monitoring & Management (PMM) (100% open source)
Scalability – Client Connections Open Source Threadpool MySQL Enterprise Threadpool Open Source Threadpool with support for priority tickets
Scalability – Clustering MariaDB Enterprise Cluster (based on Galera Cluster) MySQL Group Replication MySQL Group Replication, Percona XtraDB Cluster (based on a further engineered Galera Cluster)
Security – Encryption Tablespace and table data-at-rest encryption. Amazon KMS, binlog/redo/tmp file with Aria tablespace encryption Tablespace data-at-rest encryption. Amazon KMS, Oracle Vault Enterprise Edition Tablespace data-at-rest encryption with Keyring Vault plugin
Security – Data Masking MariaDB MaxScale data masking ProxySQL data masking ProxySQL data masking
Security – Firewall MariaDB MaxScale Firewall MySQL Enterprise Firewall ProxySQL Firewall
Security – Auditing MariaDB Audit Plugin (OSS) MySQL Enterprise Audit Plugin Percona Audit Plugin (OSS)
Analytics MariaDB ColumnStore No ClickHouse
SQL – Common Table Expressions Present in MariaDB Server 10.2 In-development for MySQL 8.0 (now a release candidate) In-development for MySQL 8.0 (now a release candidate)
SQL – Window Functions Present in MariaDB Server 10.2 In-development for MySQL 8.0 (now a release candidate) In-development for MySQL 8.0 (now a release candidate)
Temporal – Log-based rollback In development for MariaDB Server 10.3 No No
Temporal – system versioned tables In development for MariaDB Server 10.3 No No
JSON No JSON Data Type, 26 functions JSON Data type, 21 functions JSON Data type, 21 functions
Official client connectors C (libmariadbclient), Java, ODBC C (libmysqlclient), Java, ODBC, .NET, Node.js, Python, C++, mysqlnd for PHP C (libmysqlclient), Java, ODBC, .NET, Node.js, Python, C++, mysqlnd for PHP
Usability – CJK Language support No Gb18030, ngram & MeCab for InnoDB full-text search Gb18030, ngram & MeCab for InnoDB full-text search
Monitoring – PERFORMANCE _SCHEMA Instrumentation from MySQL 5.6, sys schema not included Thorough instrumentation in 5.7, sys schema included Thorough instrumentation in 5.7, sys schema included
Security – Password authentication ed25519 (incompatible with sha256_password) sha256_password (with caching_sha2_password in 8.0) sha256_password (with caching_sha2_password in 8.0)
Security – Secure out of the box No validate_password on by default, to choose a strong password at the start validate_password on by default, to choose a strong password at the start
Usability – Syntax differences SHOW EXPLAIN FOR EXPLAIN FOR CONNECTION EXPLAIN FOR CONNECTION
Optimiser – Optimiser Tracing No Yes Yes
Optimiser – Optimiser Hints No Yes Yes
DBA – Super readonly mode No Yes Yes
Security – Password expiry No Yes Yes
Security – Password last changed? Password lifetime? No Yes Yes
Security – VALIDATE_PASSWORD _STRENGTH() No Yes Yes
Security – ACCOUNT LOCK/UNLOCK No Yes Yes
Usability – Query Rewriting No Yes Yes
GIS – GeoJSON & GeoHash functionality Incomplete Yes Yes
Security – mysql_ssl_rsa_setup No (setup SSL connections manually) Yes Yes
MySQL Utilities No Yes Yes
Backup locks No No (in development for 8.0) Yes
Usability – InnoDB memcached interface No Yes Yes

*Note. Third-party software (such as ProxySQL and ClickHouse) used in conjunction with Percona Server for MySQL is not necessarily covered by Percona Support services.

To get a higher level view of what Percona Server for MySQL offers compared to MySQL, please visit Percona Server Feature Comparison. Read this for a higher level view of compatibility between MariaDB Server and MySQL written by MariaDB Corporation.

MariaDB vs. MySQL: Exploring the Key Differences

In the below sections, we’ll compare the key differences between MariaDB, MySQL, and Percona Server for MySQL.

Open Community

MariaDB Server undoubtedly has an open community, with governance mixed between MariaDB Foundation and MariaDB Corporation. There are open developer meetings on average about twice per year, two mailing lists (one for developers and users), an IRC channel and an open JIRA ticket system that logs bugs and feature requests.

Percona Server for MySQL also has an open community. Developer meetings are not open to general contributors, but there is a mailing list, an IRC channel and two systems – Launchpad and JIRA – for logging bugs and feature requests.

MySQL also has an open community where developer meetings are also not open to general contributors. There are many mailing lists, there are a few IRC channels and there is the MySQL bugs system. The worklogs are where the design for future releases happens, and these are opened up when their features are fully developed and source-code-pushed.

From a source code standpoint, MySQL makes pushes to Github when a release is made, whereas open source development happens for Percona Server for MySQL and MariaDB Server on Github.

Feature development on MySQL continues in leaps and bounds, and Oracle has been an excellent steward of MySQL. Please refer to The Complete List of Features in 5.7, as well as The Unofficial MySQL 8 Optimiser Guide.

Linux distributions have chosen MariaDB Server 5.5, and some have chosen MariaDB Server 10.0/10.1 when there was more backward compatibility to MySQL 5.5/5.6. It is the “default” MySQL in many Linux distributions (such as Red Hat Enterprise Linux, SUSE and Debian). However, Ubuntu still believes that when you ask for MySQL you should get it (and that is what Ubuntu ships).

One of the main reasons Debian switched was due to the way Oracle publishes updates for security issues. They are released as a whole quarterly as Critical Patch Updates, without much detail about individual fixes. This is a policy that is unlikely to change but has had no adverse effects on distribution.

All projects actively embrace contributions from the open community. MariaDB Server does include contributions like the MyRocks engine developed at Facebook, but so does Percona Server for MySQL. Oracle accepts contributions from a long list of contributors, including Percona. Please see Licensing information for MySQL 5.7 as an example.

A Shared Core Engine

MariaDB Server has differed from MySQL since MySQL 5.5. This is one reason why you don’t get version numbers that follow the MySQL scheme. It is also worth noting that features are cherry-picked at merge time because the source code has diverged so much since then.

As the table below shows, it took Percona Server for MySQL over four months to get a stable 5.5 release based on MySQL 5.5, while it took MariaDB Server one year and four months to get a stable 5.5 release based on MySQL 5.5. Percona Server for MySQL 5.6 and 5.7 are based on their respective MySQL versions.

MySQL Percona Server for MySQL MariaDB Server
3 December 2010 5.5.8 GA
28 April 2011 5.5.11-20.2 GA
11 April 2012 5.5.23 GA
5 February 2013 5.6.10 GA
7 October 2013 5.6.13-61.0 GA
31 March 2014 10.0.10 GA
17 October 2015 10.1.8 GA
21 October 2015 5.7.9 GA
23 February 2016 5.7.10-3 GA
23 May 2017 10.2.6 GA

MySQL is currently at 8.0.3 Release Candidate, while MariaDB Server is at 10.3.2 Alpha as of this writing.

MariaDB Server is by no means a drop-in replacement for MySQL. The risk of moving to MariaDB Server if you aren’t using newer MySQL features may be minimal, but the risk of moving out of MariaDB Server to MySQL is very prevalent. Linux distributions like Debian already warn you of this.

MySQL vs. MariaDB

The differences are beyond just default configuration options. Some features, like time-delayed replication that were present in MySQL since 2013, only make an appearance in MariaDB Server in 2017! (Refer to the MariaDB Server 10.2 Overview for more.) However, it is also worth noting some features such as multi-source replication appeared in MariaDB Server 10.0 first, and only then came to MySQL 5.7.

Extensibility

MySQL and MariaDB Server have a storage engine interface, and this is how you access all engines, including the favored InnoDB/Percona XtraDB. It is worth noting that Percona XtraDB was the default InnoDB replacement in MariaDB Server 5.1, 5.2, 5.3, 5.5, 10.0 and 10.1. But in MariaDB Server 10.2, the InnoDB of choice is upstream MySQL.

Stock MySQL has provided several storage engines beyond just InnoDB (the default) and MyISAM. You can find out more information about 5.7 Supported Engines.

Percona Server for MySQL includes a modified MEMORY storage engine, ships Percona XtraDB as the default InnoDB, and also ships TokuDB and MyRocks (currently experimental). MyRocks is based on the RocksDB engine, and both are developed extensively at Facebook.

MariaDB Server includes many storage engines beyond the default InnoDB. MyISAM is modified with segmented key caches, the default temporary table storage engine is Aria (which is a crash-safe MyISAM), the FederatedX engine is a modified FEDERATED engine, and there are more: CONNECT, Mroonga, OQGRAPH, Sequence, SphinxSE, SPIDER, TokuDB and of course MyRocks.

Storage engines have specific use cases and have different levels of feature completeness. You should thoroughly evaluate a storage engine before choosing it. We believe that over 90% of installations are fine with just InnoDB or Percona XtraDB. Percona TokuDB is another engine that users who need compression could use. We naturally expect more usage in the MyRocks sphere going forward.

Analytics

MariaDB ColumnStore is the MariaDB solution to analytics and using a column-based store. It is a separate download and product and not a traditional storage engine (yet). It is based on the now-defunct InfiniDB product.

At Percona, we are quite excited by ClickHouse. We also have plenty of content around it. There is no MySQL story around this.

High Availability

High Availability is an exciting topic in the MySQL world, considering the server itself has been around for over 22 years. There are so many solutions out there, and some have had evolution as well.

MySQL provides MySQL Cluster (NDBCLUSTER) (there is no equivalent in the MariaDB world). MySQL also provides group replication (similar to Galera Cluster). Combined with the proxy MySQL Router, and the mysqlsh for administration (part of the X Protocol/X Dev API), you can also get MySQL InnoDB Cluster.

We benefit from the above at Percona, but also put in lots of engineering work to make Percona XtraDB Cluster.

MariaDB Server only provides Galera Cluster.

Security

While we don’t want to compare the proprietary MySQL Enterprise Firewall, MariaDB’s recommendation is the proprietary, non-open source MariaDB MaxScale (it uses a Business Source License). We highly recommend the alternative, ProxySQL.

When it comes to encryption, MariaDB Server implements Google patches to provide complete data at rest encryption. This supports InnoDB, XtraDB, and Aria temporary tables. The log files can also be encrypted (not present in MySQL, which only allows tablespace encryption and not log file encryption).

When it comes to attack prevention, ProxySQL should offer everything you need.

MySQL Enterprise provides auditing, while MariaDB Server provides an audit plugin as well as an extension to the audit interface for user filtering. Percona Server for MySQL has an audit plugin that sticks to the MySQL API, yet provides user filtering and controls the ability to audit (since auditing is expensive). Streaming to syslog is supported by the audit plugins from Percona and MariaDB.

Supporting Ecosystem and Tools

Upgrading from MySQL to MariaDB Server should be a relatively simple process (as stated above). If you want to upgrade away from MariaDB Server to MySQL, you may face hassles. For tools, see the following table:

Purpose MySQL Percona Server for MySQL MariaDB Server
Monitoring MySQL Enterprise Monitor Percona Monitoring & Management (PMM) (100% open source) Webyog Monyog
Backup MySQL Enterprise Backup Percona XtraBackup MariaDB Backup (fork of Percona XtraBackup)
SQL Management MySQL Workbench MySQL Workbench Webyog SQLyog
Load Balancing & Routing MySQL Router ProxySQL MariaDB MaxScale
Database Firewall MySQL Enterprise Firewall ProxySQL MariaDB MaxScale

 

Enterprise Database Compatibility

MariaDB Server today has window functions and common table expressions (CTEs). These appeared in MariaDB Server 10.2. MySQL 8 is presently in release candidate status and also has similar functionality.

Looking ahead, MariaDB Server 10.3 also includes an Oracle SQL_MODE and a partial PL/SQL parser. This is to aid migration from Oracle to MariaDB Server.

MariaDB Server 10.2 also has “flashback”, developed at Alibaba, to help with log-based rollback using the binary log.

Conclusion: Maximizing Database Performance with Percona

Percona sees healthy competition in the MySQL ecosystem. We support all databases in the ecosystem: MySQL, MariaDB Server, and Percona Server for MySQL. Our focus is to provide alternatives to proprietary parts of open source software. Percona has a strong operations focus on compatibility, application scalability, high availability security, and observability. We also support many additional tools within the ecosystem and love integrating and contributing to open source code.

For example, Percona Monitoring and Management (PMM) includes many open source tools like Prometheus, Consul, Grafana, Orchestrator, and more. We have made the de facto open source hot backup solution for MySQL, MariaDB Server, and Percona Server for MySQL (called Percona XtraBackup). We continue to maintain and extend useful tools for database engineers and administrators in Percona Toolkit. We make Percona XtraDB Cluster safe for deployment out of the box. We have invested in a write-optimized storage engine, TokuDB, and now continue to work on making MyRocks better.

We look forward to supporting your deployments of MySQL or MariaDB Server, whichever option is right for you! If you need assistance on migrations between servers, or further information, don’t hesitate to contact your friendly Percona sales associate.

Ready to take your MySQL deployments to the next level? Explore our comprehensive features and support with Percona Server for MySQL and Percona Distribution for MySQL.

Get started today!

 

Frequently Asked Questions

  1. Which one is better, MariaDB or MySQL?
    Choosing between MariaDB or MySQL depends on your specific requirements and use case. Both are popular and offer similar core functionality. MariaDB offers improved performance for large datasets as well as enhanced security features. MySQL, on the other hand, benefits from a large user base and community and has a track record of reliability and stability. 
  2. Are there any performance differences between MariaDB and MySQL?
    The performance differences between MariaDB and MySQL are typically minimal, but specific workloads, database configurations, and your database needs will dictate which choice will work best for you. It may be more important to focus on the differences beyond just performance, such as features, support, and compatibility, in order to make the right selection.
  3. Is MariaDB replacing MySQL?
    While MariaDB has gained in popularity, it has not replaced MySQL as the database of choice. Both MariaDB and MySQL are still used in various applications in companies both large and small.
  4. Are there any specific use cases where MariaDB is preferred over MySQL or vice versa?
    MariaDB can be an excellent choice for applications that deal with large datasets and complex workloads. In contrast, MySQL is a preferred choice for users where a diverse set of tools and integrations are required, and widespread adoption and community support are wanted.
  5. Is MariaDB compatible with applications developed for MySQL?
    Yes, as a fork of MySQL, MariaDB is highly compatible with applications developed for MySQL.

Powered by WordPress | Theme: Aeros 2.0 by TheBuckmaker.com