MySQL is an open source relational database management system (RDBMS). It was rated as the world’s second most widely used RDBMS, and the most widely used open source client-server model RDBMS in July 2013. MySQL is owned by Oracle Corporation and several paid editions offering additional functionality are available for proprietary use. MySQL is a popular choice of database for use in web applications. It is used in many large-scale websites like Facebook, Twitter, Flickr, YouTube and Google (not for searches). Reviewers note that MySQL is very robust. Its speed and stability make it popular as a true multi-user and multi-threaded SQL database server. PostgreSQL, simply referred to as Postgres, is an object-relational database management system (ORDBMS) with a strong emphasis on extensibility and standards-compliance. Its primary function is to store data securely and to support best practices. It allows retrieval at the request of other software applications. It can handle workloads ranging from small single machine applications to large Internet-based applications with many concurrent users. PostgreSQL is a free, open source software developed by the PostgreSQL Global Development Group, a diverse group of companies and individual contributors. It is released under the terms of the PostgreSQL License, a permissive free-software license. MySQL vs. PostgreSQL MySQL and PostgreSQL, both open source RDBMSs, have some similarities and many radical differences. Open source developers, IT managers and decision makers should not paint both with the same brush. An informed decision must be made only after considering their benefits and trade-offs. Similarities Both MySQL and PostgreSQL are open source database projects. However, the similarities are limited. MySQL is distributed under a restrictive ‘Copy left’ license and proprietary software vendors have to either make their software open source or purchase a proprietary license from Oracle, the copyright holder. PostgreSQL is distributed under relatively practical permissive terms and there is no single, controlling commercial entity. The licensing terms are quite liberal and it is possible to create commercial derivatives for proprietary use. Distinctions Both MySQL and Postgre have fundamentally different technical outlooks. PostgreSQL offers features for traditional database applications with a focus on reliability, data integrity, and integrated developer focused features. It has an extremely sophisticated query planner, capable of joining relatively large numbers of tables efficiently. MySQL, on the other hand, has traditionally focused on web-based applications, usually written in PHP, where the principal concern is optimizing simple queries for faster performance. When to opt for MySQL If one has to create a web application and performance is a key factor, MySQL is the ideal choice. It is relatively faster than PostgreSQL Database design is simpler MySQL’s replication abilities have been comprehensively tested and are quite reliable There is no need for cleanups in MySQL When to try out PostgreSQL If your work requires the use of high volume data, foreign key references, triggers, views and nested sub queries of sub selects, PostgreSQL is the way to go. It follows many of the SQL ANSI standards, thus allowing creation of complex SQL commands. Some reasons to use PostgreSQL: Ability to handle complex database designs and intricate business rule sets Usage of procedural languages on the server Transactions Use of stored procedures and geographical data R-Trees (i.e. used on indexes) When to use both One may choose to use MySQL to handle the web front-end and PostgreSQL to keep track of all testing metrics. MySQL and PostgreSQL contribute in their own ways. One is not necessarily better than the other, and each one has its place in the world of open source databases. Ultimately, it comes down to your preference and framework support.