PostgreSQL vs MySQL

IT managers and other decision makers should not make the mistake of thinking of all open source RDBMSs in similar terms; there are radical differences between MySQL and PostgreSQL, and when considering which of these two alternatives to use, an informed decision must be made, that considers the rather different set of trade-offs that each system represents.

What are the similarities?

The only reasonable basis of comparison between MySQL and PostgreSQL is that they are both open source database projects. However, even here the similarity is small. MySQL is distributed under a more restrictive „Copyleft“ licence that effectively forces proprietary software vendors to either open source their application, or purchase a proprietary licence from a single commercial entity and copyright holder, Oracle. In contrast, PostgreSQL is distributed under the most permissive terms that are practical. There is no single, controlling commercial entity. The project’s licensing terms are so liberal that it is permitted to create proprietary commercial derivatives without paying any royalties, as has already happened, for example, in the case of niche data warehousing solution Greenplum.

What are the differences?

The projects have radically different technical outlooks in almost all regards, and each is informed by a completely different set of concerns.

PostgreSQL has traditionally focused on reliability, data-integrity and integrated developer-focused features. It has an extremely sophisticated query planner, which is capable of joining relatively large numbers of tables efficiently.

MySQL, on the other hand, has traditionally focused on read-mostly web apps, usually written in PHP, where the principal concern is with optimising simple queries.

While both projects have improved considerably since these impressions were initially formed, and a comparison is more difficult to make then it once was, the technical foundations and developer mindsets that informed these earlier perceptions continue to be a pervasive influence on both projects.