A Free Trial That Lets You Build Big!
Start building with 50+ products and up to 12 months usage for Elastic Compute Service
Although MySQL is one of the most popular programs, many developers think it is necessary to split it into other projects, and each branch project has its own expertise. This demand and Oracle's concerns about slow growth of core products have led to the emergence of many sub-projects and branches that developers are interested in.Introduction
MySQL is one of the most popular free open source programs in history. It is the backbone of the database for thousands of websites, and can®As a strong proof of exponential growth of the Internet over the past 10 years.
So, if MySQL is so important, why are there more and more high-end derivatives of core MySQL products? This is because MySQL is a free open-source application, so developers can always get its code, modify the code according to their own ideas, and then distribute the code on their own. For a long time, there were no trusted MySQL branches in the developer's production environment. However, this situation quickly changes. Several branches have aroused the attention of many people.
This article will discuss three popular MySQL branches: Drizzle, MariaDB, and Percona Server (including XtraDB engine ). This article briefly describes the causes and objectives of each branch and whether they can be used in your own production environment. At the end of this article, you should be able to answer "is these MySQL branch products a good solution for my environment ?" This is a problem.
Why do I need to branch MySQL? This is a very reasonable question. Thousands of websites depend on MySQL, and for many, it seems to be a good solution. However, this is usually the case. It is not necessarily suitable for many people. This prompted some developers to develop better solutions based on their own needs. What is better than converting a good solution into a perfect solution ?.
Next we will introduce more details about how these branches seek to change. Some branches think that MySQL has become too bloated, providing features that many users will never be interested in, and sacrificing the simplicity of performance. If you are particularly satisfied with the simpler MySQL 4, why do you need to add additional complexity to MySQL 5? For this branch, a better MySQL branch should be simpler and faster, so it provides fewer features, but this will make these features play a very rapid role, and keep in mind the target audience, in this example, the target audience is a high-availability website.
For other branches, MySQL does not provide enough new functions, or it is too slow to add new functions. They may think that MySQL has not kept pace with the development of the target market for high-availability websites that run on multi-core processors with a large amount of memory. As anyone familiar with MySQL knows, MySQL provides two storage engines: MyISAM and InnoDB. These two storage engines do not provide the content they need, so they created a new storage engine that is very suitable for their target.
In addition, the highest goal of some branches is to become an alternative product for MySQL, in which you can easily access their branches without changing any code. This branch uses the same code and interface as MySQL, making the transition very easy. However, another branch claims that it is not compatible with MySQL and needs to change the code. The maturity of each branch varies. Some branches claim that they are ready for production, while others claim that they are far from achieving this highest goal.
Finally, we are not sure how MySQL will develop in Oracle. Oracle acquired Sun and MySQL. Now Oracle controls MySQL and leads the development community to develop new products. Since Oracle already has a commercial database, people worry that they may not have enough resources to keep MySQL ahead. As a result, many branches are also the result of these potential concerns. They worry that MySQL, as a leading free open source database, may provide too few features, the release cycle is too slow, and support costs are more expensive.
XtraDB is an independent product, but it is still considered as a branch of MySQL. XtraDB is actually a storage engine for MySQL-based databases. XtraDB is considered as an additional storage engine for MySQL standard MyISAM and InnoDB. MySQL 4 and 5 use the default MyISAM storage engine to install each table. InnoDB is also a relatively new storage engine. When creating a database, database administrators and developers can select the storage engine type based on each table. The main difference between the two storage engines is that MyISAM does not provide transaction support, while InnoDB provides transaction support. Other differences are many subtle performance differences. Compared with MyISAM, InnoDB provides many minor performance improvements and provides higher reliability and security when dealing with potential data loss. It seems that InnoDB is a more suitable storage engine for future improvement. Therefore, MySQL has changed the default storage engine from MyISAM to InnoDB since MySQL 5.5.
Based on these advantages, the InnoDB Storage engine itself is split into a branch, an update storage engine named XtraDB. How new is this storage engine? It was first released by Percona three years ago, so it is relatively new. It is designed specifically for modern high-availability websites running on modern servers. It is designed to run on servers with a dozen or more cores and large memory (32 GB and more. Any company can purchase these types of servers from the server management company, so the database should be designed to make full use of these servers.
The XtraDB branch has another goal, that is, it is a simple alternative to the InnoDB Storage engine, so that users can easily switch their storage engine without changing any existing application code. XtraDB must be backward compatible with InnoDB to provide all the new features and improvements they want to add. They achieve this goal.
How fast is XtraDB? One performance test I found showed that compared to the built-in MySQL 5.1 InnoDB engine, it can process 2.7 times of transactions per minute .. Speed is obviously a factor that cannot be ignored, especially when considering alternative products.
Compared with the built-in MySQL storage engine, XtraDB provides some significant improvements, but it is not an independent product and cannot be easily installed in existing MySQL. Therefore, if you want to use this new engine, you must use the product that provides it.
Percona Server is such a product released by Percona, a leading MySQL consulting company. Percona Server is an independent database product that provides users with the ability to install and switch from MySQL to Percona Server. By doing so, you can use the XtraDB storage engine. Percona Server claims to be fully compatible with MySQL, So theoretically you do not need to change any code in the software. This is indeed a great advantage and is suitable for quality control when you are looking for fast performance improvements. Therefore, a good reason for using Percona Server is to use the XtraDB engine to minimize code changes.
They are also the original authors of the XtraDB storage engine. Percona uses this code as the open source code, so you can find it in other products, but the engine's original creator is the same person who wrote this product, therefore, you can use this information as you like.
The following is a Percona Server statement from their own websites:
◆ Scalability: handles more transactions and expands on powerful servers
◆ Performance: XtraDB's Percona Server is used at a very fast speed.
◆ Reliability: prevents damages and provides crash-safe replication.
◆ Management: online backup, online table Import/Export
◆ Diagnosis: advanced analysis and Detection
◆ Flexibility: The page size can be changed. The final statement of the improved buffer pool management Percona team is "Percona Server is the version closest to the official MySQL Enterprise release version released by Oracle ", therefore, it is different from other branches that have changed a large number of basic MySQL code. One disadvantage of Percona Server is that they manage their own code and do not accept contributions from external developers. In this way, they ensure their control over the features included in the product.
Another product that provides the XtraDB storage engine is MariaDB. It is very similar to Percona, but provides more underlying code changes, trying to provide more performance improvements than standard MySQL. MariaDB uses the XtraDB engine from Percona directly. Since they use the same engine, there is no significant difference each time they use the storage engine.
In addition, MariaDB provides a standard storage engine provided by MySQL, namely, MyISAM and InnoDB. Therefore, it can be regarded as an extension set of MySQL. It not only provides all functions provided by MySQL, but also provides other functions. MariaDB also claims that it is an alternative to MySQL. Therefore, when switching from MySQL to MariaDB, you can install MariaDB without changing any basic code.
Last and most importantly, MariaDB's primary creator is Monty Widenius, which is also the initial creator of MySQL. Monty established a company named Monty Program to manage MariaDB development, which employs developers to write and improve MariaDB products. This is both a good thing and a bad thing: the advantage is that they are the best in Maria's functions and bug fixes, but the company is not for profit, but driven by products, this may cause problems because companies that are not profitable may not be able to survive for a long time.
The last product introduced in this article is Drizzle. Different from the two products introduced earlier, Drizzle is very different from MySQL, and even claims that they are not an alternative product of MySQL. They want to make some major changes to MySQL and want to provide an excellent solution to solve the high availability problem, even if it means to change all aspects of MySQL that we are used.
On the FAQ page of the company, when reading the questions provided, Drizzle further emphasizes its basic goal. They are not satisfied with some changes made to MySQL code after MySQL 4.1, claiming that many developers do not want to spend extra money. They acknowledge that their products are not compatible with SQL relational databases. This is indeed quite different from MySQL.
Why should we consider this product because of this big change with the usual MySQL? To be precise, the reason is the same as above. Drizzle is a major modification of the MySQL engine. It clears some poorly performing and unnecessary functions and overwrites a lot of code, they were optimized and even changed from C ++ to get the required code. In addition, Drizzle does not end the modification. This product is designed to take into account its target market, it is a multi-core server with a large amount of content, a 64-bit Linux running machine, a server used in cloud computing, a website hosting server, and a server that receives tens of thousands of clicks per minute. This is a very specific market. Is it too specific? Keep in mind the current investment of these types of companies in their databases. If they can install Drizzle instead of MySQL, their server costs will be halved, saving a lot of money!
So should everyone use Drizzle? And so on. As Drizzle has repeatedly pointed out, it is incompatible with MySQL. Therefore, if you are using the MySQL platform, you need to overwrite a lot of code to make Drizzle work normally in your environment.
Although it requires additional work to run it, it is not as fast and easy to use as Percona or MariaDB. I introduced Drizzle because, although it may not be your choice at the moment, it may become a choice for some people in a few years. This article aims to improve your understanding of the tools used in the future, so it is a good opportunity to introduce this product to you. Many leading DB experts believe that Drizzle will be the choice for high-availability database installation in the next five years.
Drizzle is a fully open-source product that publicly accepts contributions from developers. Unlike MariaDB, which has companies supporting its development, and Percona, which has a large number of external developers contributing to it. Drizzle has a lot of room for growth and provides some new features, but it may need to rewrite most of the MySQL code.
The following is an overview of the three MySQL branch products described in this article.
This article introduces three new branches of MySQL to solve some problems they encounter when using MySQL. These three branches are free open-source products. During use, you need to weigh their advantages and disadvantages Based on the functions provided by MySQL. I believe that for most people reading this article, MySQL will still be the first choice to meet database requirements. I suspect that most of the readers who read this article are the owners of websites with a 1,000,000 click rate per hour. I want to emphasize again that MySQL is still a very good product and a database that is very suitable for most use cases.
However, for those who think their website needs higher availability, scalability and performance than MySQL currently can provide, any of the three products can provide you with the required solutions. Furthermore, if you believe that your website will become a website with a lot of profit, you can consider using one of the three products to solve the problem before it occurs.
Finally, the root cause of these MySQL branches is that some creators want to change some basic functions of MySQL, because they cannot wait until MySQL completes the work. In addition, the current situation of Oracle threatens the future of MySQL, and many developers (including original MySQL developers) are worried about the future of this product, they are also worried about whether Oracle will put effort into maintaining the leading database position of the product. These concerns are reasonable to me, so we should keep these products in mind when moving towards the future.
Start building with 50+ products and up to 12 months usage for Elastic Compute Service