Table of contents of the article:
In the vast world of database management systems (DBMS), developers often find themselves choosing between MySQL, Percona Server, and MariaDB. This seemingly banal choice actually reveals a complex and multi-faceted panorama. Many tend to consider these three systems as equivalent, but in fact they are distinguished by a series of unique and specific features, with their relative Pros and Cons. In our article today, entitled “What to choose between MySQL, Percona Server or MariaDB?“, we will dive into the history of these popular DBMS, exploring their origins, the relationships that bind them and their peculiarities. We will analyze in detail the similarities and differences that characterize MySQL, Percona Server and MariaDB, providing a comprehensive overview that will guide developers in the most appropriate choice for their needs in 2024. The goal is to provide a clear and in-depth understanding of these tools, for an informed and strategically advantageous decision in a constantly evolving field such as databases.
The history of MySQL and the acquisition of Sun which was in turn acquired by Oracle
MySQL, one of the best-known and most widespread database management systems (DBMS), boasts a rich and complex history that has its roots in the early 90s. Originally developed by two key figures in the database field, Michael Widenius, better known as “Monty”, and David Axmark, MySQL quickly gained popularity due to its simplicity, efficiency, and open source model. The name MySQL comes from Monty's daughter, My, emphasizing a personal and passionate approach in creating this software.
A significant turning point in the history of MySQL was the introduction of two core storage engines: MyISAM and InnoDB. MyISAM, the original storage engine, stood out for its speed and ease of use, but was limited by its lack of transaction support, a key feature for many modern applications. The integration of InnoDB marked a sea change, offering transaction support, greater data reliability, and greatly improving MySQL's versatility in more complex usage scenarios.
Over the years, MySQL has gone through several owners. In 2008, Sun Microsystems acquired MySQL AB, the company originally founded by Widenius and Axmark, bringing the DBMS under a larger umbrella. However, the real turning point came in 2010 when Oracle Corporation acquired Sun Microsystems.
The acquisition of MySQL by Sun Microsystems in 2008 represents a fundamental moment in the history of database management systems. Sun Microsystems, a pioneer in the field of computer systems and software, has decided to acquire MySQL AB, the Swedish company behind MySQL, for a sum of approximately $1 billion. This step marks an important evolution for MySQL, which until then had been one of the cornerstones of the open-source and free software movement.
The reasons behind this acquisition were multiple. On the one hand, Sun was looking to strengthen its offering in the growing market for services and solutions based on open-source software. The inclusion of MySQL in its portfolio allowed Sun to offer a complete database solution, integrating seamlessly with its other technologies and services. On the other hand, the acquisition represented an opportunity for MySQL to accelerate its development, benefiting from Sun's resources and technological expertise.
However, this acquisition was not without its concerns. Within the open-source community, there was concern that MySQL, under the leadership of a large company like Sun, might lose some of its independence and innovative spirit. These concerns were further amplified when, two years later, Oracle Corporation announced the acquisition of Sun Microsystems, bringing MySQL under the control of one of the largest competitors in the database market.
Despite these concerns, Sun's acquisition of MySQL represented a significant milestone on the path to consolidating open-source into the mainstream technology sector. It highlighted the growing importance of open-source databases in a market dominated by proprietary solutions, and marked the beginning of a new era for MySQL, with new challenges and opportunities.
The birth of MariaDB as a Fork of MySQL after the purchase of Oracle.
MariaDB represents one of the most intriguing stories in the world of database management systems (DBMS). Born as a fork of MySQL, MariaDB was created by Michael “Monty” Widenius, the original co-founder of MySQL, in response to concerns in the open source community about the acquisition of MySQL by Sun in 2008 and Oracle Corporation in 2010. The name “MariaDB” is a tribute to Monty's second daughter, Maria, continuing the family tradition that began with MySQL.
If we consider that MariaDB was born at the end of 2009, it seems logical as a causal link that the acquisition of MySQL by Oracle was actually the trigger for the fork.
MariaDB's main goal was to stay true to the open source spirit and provide an alternative route for MySQL users looking for a more independent solution. MariaDB was developed to be fully compatible with MySQL, allowing users to easily switch between them. This compatibility made MariaDB a popular choice for developers and businesses who wanted to avoid dependency on a product under Oracle's control.
Over the years, MariaDB has introduced numerous innovations and improvements, distancing itself further and further from MySQL and losing much of its backward compatibility.
In fact, MariaDB has developed new features, performance improvements and support for different storage architectures, making it an increasingly powerful and versatile DBMS. MariaDB has also acquired an active and growing community, which contributes to the development and diffusion of the project.
MariaDB's success can be attributed not only to its technical heritage from MySQL, but also to its open and collaborative philosophy. This has allowed MariaDB to quickly adapt to the evolving needs of developers and businesses, while maintaining a strong commitment to open source principles. MariaDB's story is a clear example of how the developer community can respond and adapt to changes in the technology landscape, ensuring continuity and innovation in a constantly evolving industry.
The error of evaluation of Michael “Monty” Widenius
Michael “Monty” Widenius' misjudgment regarding Oracle's acquisition of MySQL plays a crucial role in the history of database management. MariaDB, as we have already mentioned, was born as a reaction to the concerns raised by the acquisition of MySQL by Oracle. It is essential to underline that Monty, as the first creator of MySQL, saw this project not only as a job but as a mission, an almost paternal commitment, aimed at nurturing and growing his "son" with dedication and affection. The sale of MySQL to Sun Microsystems was a calculated step, undertaken with the belief and hope that greater financial investment from one of the most prestigious companies in the world could bring significant improvements and new features to the project. Sun, which recorded a loss of 2018 billion in 1,7, saw the purchase of MySQL as an opportunity to renew its appeal to investors and customers.
However, things did not evolve as expected and, within six months, in April 2009, Oracle announced the acquisition of Sun Microsystems, a company at the forefront of the server hardware sector and already owner of leading software such as Java and the recently acquired MySQL.
Monty perceived Oracle, the maker of the famous DBMS of the same name, as a significant threat. Probably, he feared that Oracle might marginalize MySQL, reducing its budget, slowing its development and limiting its functionality and performance to the advantage of its flagship product, the Oracle DBMS. This concern reflected Monty's thinking as a developer, rather than as an entrepreneur, not considering that an asset like MySQL, even in the presence of a dominant DBMS like Oracle, could represent added value for investors and attract new customers, rather than simply being a competitor.
Furthermore, from a developer's perspective, Monty overlooked one key aspect: PostgreSQL. Already in 2009, with its version 8.4 and ahead of release 9, PostgreSQL was a much more complete DBMS than MySQL, both in terms of performance and functionality, and represented an enterprise-grade alternative to Oracle's hegemony. Being completely open source, PostgreSQL could not have easily been “silenced” by any attempt by Larry Ellison to purchase any open source competitors.
In reality, the following years demonstrated a different trend from that hypothesized. Oracle actually developed MySQL, introducing innovative features and improving performance, contrary to the initial concerns of the MySQL community and Monty himself. This development demonstrated that, despite initial apprehensions, MySQL has managed to maintain its role and evolve in the DBMS landscape under Oracle's leadership.
However, the opportunity to create a fork of MySQL to guarantee a free, free and Open Source DBMS created the right conditions of competition capable of bringing value to the entire MySQL derivative ecosystem.
Maria AB's financial problems and the uncertainty of the project.
MariaDB, despite its status as a successful open-source project, has encountered financial difficulties in recent years, a common reality for many open-source initiatives. The last time MariaDB was discussed in financial terms was in February 2019, when the CEO of the company MariaDB Corporation expressed concerns about the few contributions to the project from large companies, despite the significant profits that the latter generated from the use of the software.
MariaDB Corporation, which supports software development, recently reduced its workforce by 28% and ended development on two of its products, SkySQL and XPand, as reported by linuxiac.com. These moves indicate the financial challenges the company is facing in shouldering the burden of maintaining the project.
However, in a curious contrast, the MariaDB Foundation, a non-profit entity separate from the corporation, received a diamond sponsorship from AWS in early October. This support could help ensure greater sustainability for maintaining MariaDB's code. Despite this, the financial crisis of MariaDB Corporation, which remains the main contributor to the code, could impact the part of the project that is going well.
In addition, Microsoft's decision to withdraw the Azure MariaDB product from its cloud, inviting users to migrate to Azure MySQL, signals further challenges, with reasons that may be more commercial than technical.
Predicting the future of MariaDB is complex given these circumstances, but the hope remains that the project can continue to thrive despite current challenges.
The history of Percona Server
Percona, founded in 2006 by Peter Zaitsev and Vadim Tkachenko, has established itself as a leading software and services company, specializing in particular in MySQL databases. The company has gained recognition in the database management systems field for its expertise in MySQL, offering innovative solutions and high-quality services that appeal to both small and large businesses.
In addition to its consulting and support services, Percona is particularly renowned for the forks it develops and maintains, contributing significantly to the MySQL ecosystem. Among them, Percona Server and XtraDB are the best known.
Percona Server is a fork of MySQL, while XtraDB is a fork of the InnoDB storage engine. Both of these forks were created with the intent of optimizing performance, scalability and security compared to the original versions. While they may not have a user base comparable to that of MySQL or MariaDB, their advanced features and the fixes they introduce have a significant impact, so much so that they are often integrated into subsequent MySQL updates or MariaDB forks.
In the context of Open Source and the GPL license, it is common to observe a dynamic of competitive collaboration, where innovations introduced by a competitor can be integrated into the products of others, and vice versa. However, it is important to note that, in practical terms, Percona Server does not directly embed code from MariaDB. Instead, Percona Server closely follows the development of MySQL Standard, adopting its innovations and improvements. This approach allows Percona Server to function as a direct drop-in replacement for MySQL, ensuring absolute compatibility with the same version of MySQL. This way, users can move to Percona Server without having to make significant changes to their existing systems, thus benefiting from the optimizations and additional features offered by Percona.
One of the key aspects that make Percona Server a popular choice is its presence in the repositories of many GNU/Linux distributions. This makes its use more accessible and simple for users of these platforms, providing a valid alternative to standard MySQL. Additionally, the Linux community particularly values Percona for its commitment to open-source and its ability to offer database solutions that are both powerful and reliable.
Percona's position in the world of DBMS is strengthened by its ability to innovate and respond quickly to market needs. With a constant focus on optimization and efficiency, Percona continues to play an essential role in evolving and improving the database landscape, both for individual users and large organizations.
Percona Server, specifically Percona Server for MySQL, was born in unsuspecting times in 2006, far from the hypothesis of the sale of MySQL to Sun, and is a fascinating story of innovation and adaptation in the field of database management systems (DBMS). The history of Percona Server begins as a direct response to the need for enhanced performance and scalability over standard MySQL. Developed by Percona LLC, a company known for its expertise in MySQL and open source databases, Percona Server for MySQL quickly distinguished itself as a robust, optimized solution for critical production environments.
The philosophy behind Percona Server has always been to improve the performance and manageability of MySQL without sacrificing compatibility or ease of use. This has made Percona Server a popular choice for businesses and developers looking to optimize their database infrastructures without having to reimplement their existing applications. One of the distinguishing features of Percona Server is its ability to handle intensive and complex workloads, while offering greater efficiency and reliability.
Percona Server for MySQL introduced many innovative features, including improvements in memory management, query optimizations, and advanced performance diagnostic tools. These features have helped position it as a leading solution for high-performance database needs.
The history of Percona Server is emblematic of the MySQL community's commitment to providing high-performance and reliable solutions. Through continuous development and improvement, Percona Server has established itself as a go-to choice for those requiring superior performance and scalability, while maintaining compatibility with the MySQL ecosystem. Its evolution reflects the relentless pursuit of innovation and efficiency in the world of DBMS, highlighting the importance of specialized solutions in a rapidly changing technological environment.
The Percona Distribution for MySQL represents a complete offering that goes beyond a simple fork and replacement of MySQL. It is a collection of open source MySQL software, enriched with carefully selected and designed enterprise-level features. This package allows you to download all components at once, making it easy to upgrade and apply changes to a single distribution.
There are two main ways to download the Percona Distribution for MySQL, depending on your high availability needs:
- Percona Server for MySQL: This is a direct replacement for MySQL Community, offering better performance, greater scalability, and advanced security features. It is ideal for those who need synchronous replication such as Group Replication.
- Percona XtraDB Cluster (PXC): A highly available clustering solution for MySQL. This component is recommended for those who need a multi-master architecture based on Galera.
The Percona Distribution for MySQL also includes:
- Contact XtraBackup: An open source backup solution that supports all versions of Percona Server for MySQL and MySQL. This tool performs full online, non-blocking, heavily compressed, highly secure backups on transactional systems, allowing applications to remain fully available during scheduled maintenance windows.
- Percona Toolkit for MySQL: A collection of advanced, open-source command-line tools designed to perform a variety of tasks that are too difficult or complex to perform manually.
- Percona MyRocks: An alternative to InnoDB for deployments where data storage resource limitations play a crucial role.
- ProxySQL, HA Proxy, MySQL Router, MySQL Shell, Orchestrator: These distribution add-ons include proxy, replication topology manager, and code editor and client for MySQL. They offer additional functionality to manage complex database architectures and ensure high availability and scalability.
Percona Server for MySQL as a replacement for MySQL Enterprise rather than MySQL Standard
Percona Server for MySQL, in its free version, is positioned as a valid alternative to MySQL Enterprise, filling the gaps of MySQL Standard. While MySQL Standard is widely used for its basic functionality and reliability, MySQL Enterprise, offered by Oracle, is a more advanced version that includes additional enterprise-oriented features, but at a significant licensing cost. This makes MySQL Enterprise an expensive choice for many organizations.
Percona Server for MySQL, in contrast, offers a number of enterprise-class features for free, which are absent in MySQL Standard and only available for a fee in MySQL Enterprise. These include:
- PAM Authentication Plugin: This plugin allows user authentication via Pluggable Authentication Modules (PAM), offering greater flexibility and security in authentication.
- Audit Logging Plugin: Provides the ability to log detailed activity, such as access requests and data changes, essential for regulatory compliance and security.
- Storing Keyring in Hashicorp Vault: This feature allows secure management of encryption keys using Hashicorp Vault, ensuring greater security of sensitive data.
- Threadpool: Optimizes performance by improving management of simultaneous connections and workload distribution, especially useful in high-concurrency environments.
In addition to these features, Percona Server for MySQL also stands out for its backup solution. Percona XtraBackup offers an effective alternative to MySQL Enterprise Backup. It is a hot and raw backup solution, which allows you to perform full backups without interrupting the functioning of the database, making it a more efficient and convenient option than the solution offered by MySQL Enterprise.
Percona Server for MySQL emerges as an excellent choice for organizations seeking enterprise functionality without the high costs associated with MySQL Enterprise. Providing advanced security, management and backup tools, Percona Server establishes itself as a robust and cost-effective solution for advanced business needs.
Performance and benchmark between MySQL 8, Percona Server 8 and MariaDB.
When evaluating performance across newer versions of database management systems, particularly version 8, an interesting picture emerges. Without delving into complex technical analyses, which can often be found in sector blogs with sometimes misunderstood graphs and benchmarks, we can observe some significant trends. In version 8, both MySQL and Percona Server (which maintains the same version numbering as MySQL) began to show a performance gap compared to MariaDB.
One of the relevant decisions in this context was that of disable MySQL's native Query Cache, due to management issues in multithreaded and multiprocessor environments. This choice left room for the use of third-party tools for query optimization, such as ProxySQL.
In terms of Transactions Per Minute (TPM), MySQL 8 and, in particular, Percona Server 8 have proven to offer significantly superior performance, with speeds up to three times faster than those offered by MariaDB. This data is particularly significant as it highlights a substantial improvement in the performance of MySQL and Percona Server.
From this perspective, based on current facts relating to MySQL version 8, it appears that MariaDB may no longer be the preferred choice in terms of DBMS, unless there are specific needs for compatibility or upgrading from an older version of MariaDB to a more recent one.
Considering the advanced features introduced in Percona Server and the excellent speed, which is not only comparable but often exceeds that of MySQL 8, it can be said that Percona Server 8 is positioned as the leader among the three contenders, at least in comparison with MariaDB and the Standard Edition of MySQL. This evaluation underlines the importance of carefully analyzing the technical specifications and performances in the process of choosing a DBMS, taking into account the continuous evolution of these tools in the current technological context.