Have you ever wondered what is the best relational database for your project, PostgreSQL vs MySQL? This could be in most of the cases a complicated question, but in this post, we will clarify some of the most important points to make the most appropriate decision. Let me
select some points from features most important.
Nowadays, both are a free and available open source software with great benefits, such as flexibility, costs, security and a large community that supports them. If we speak of open source, I would say that the only really free is PostgreSQL, since MySQL was acquired by Oracle in 2010 making its license limited. There is nothing to worry about so far, but that could change if Oracle decides so.
Is MySQL more popular than Postgres? Of course, but this is due to its speed and low resource consumption. It is flexible and highly scalable, and obviously, because it is part of the LAMP stack… this makes it the favorite choice for web applications such as WordPress.
Although both database engines have a fairly large developer community, the advantage it has over Postgres is quite remarkable, but do not be fooled by it, since in recent years its acceptance has increased, as shown in the following image.
ACID and SQL Standard
What is ACID? Well, ACID (atomicity, consistency, isolation, durability) is a set of properties of database transactions. Compliance with ACID ensures that no data is lost or transmitted to another place in the system in case of a failure, even when several changes are made during a single transaction.
“PostgreSQL is 100% compliant with ACID.”
PostgreSQL is almost complete with the SQL standard making it very easy to move from one database to another with similar standards such as Oracle, while MySQL standards and ACID complies are poorer as long as it uses InnoDB and NDB Cluster mechanisms.
It completely depends on the requirements of the application, however, we can consider the following aspects:
- MySQL is a popular choice for web-based projects that need a simple database for direct and simple data transactions, mostly read operations. Its performance is low when subjected to heavy loads or when trying to complete complex queries.
- PostgreSQL is widely used in large systems where to read and write speeds are crucial and the data needs to be validated. In general, the performance of PostgreSQL is better used in systems that require executing complex queries.
Do you need JSON?
Currently, with the explosion of Big Data applications, NoSQL databases are more common. And because their implementation is increasing day by day, both MySQL and PostgreSQL have adopted JSON support. The thing is that only PostgreSQL has NoSQL features, native support for XML and JSON indexing.
PostgreSQL vs MySQL
This time, from an objective point of view, I will say that PostgreSQL is the winner due to the large number of superior features it has over MySQL. A really important point to consider is that it is much simpler and cheaper to implement MySQL because its developer community is much more extensive than PostgreSQL. If you plan to develop an application that requires a large database, high performance in both reading and writing and executing complex queries, I will definitely advise you to use PostgreSQL.