Differences Between PostgreSQL and MySQL

In this article, we are going to see the differences between PostgreSQL and MySQL databases in terms of documentation, support, indexes, queries, performance, replication and clustering etc.

Difference Between PostgreSQL and MySQL
PostgreSQL Vs MySQL


PostgreSQL documentation available here.

MySQL documentation available here.

Source Code Management:

PostgreSQL is an open-source project and its maintenance is handled by PostgreSQL Global Development Group and its productive community. The source code is available on Github.

MySQL‘s source code is accessible under the terms of the GNU General Public License, as well as under a variety of exclusive agreements. Currently, Oracle Corporation is the owner of MySQL. There are several paid editions available with additional functionality.

Support :

PostgreSQL offers wide variety of community and commercial support options for users. Community support includes mailing lists and IRC

MySQL also offers a lot of community options as well as commercial support options. The popular support sites are MySQL.com and Percona

Database structure:

PostgreSQL is an object-relational database management system (ORDBMS). PostgreSQL uses tables, roles, stored, procedures, constraints, triggers, and views as the core components. A table consists of rows and each row has a set of columns. It uses primary keys to uniquely identify each row in a table, and foreign keys to relate tables. However, it also supports many NoSQL features as well.

MySQL is an open-source relational database management system (RDBMS). MySQL uses tables as a core component and has most of the same feature as PostgreSQL. In addition, new versions of MySQL (5.7+) also support some NoSQL features.


Indexes speed up database performance, as they allow the database server to find and retrieve specific rows much faster than without an index. 

PostgreSQL includes built-in support for regular B-tree, hash indexes, also, it supports Expression indexes (Created with an index of the result of an expression or function) and Partial indexes (index only a part of a table) as well.

MySQL indexes PRIMARY KEY, UNIQUE, INDEX, and FULLTEXT are stored in B-trees. It also supports hash indexes.

Queries Syntax:

In most of the cases, PostgreSQL queries are exactly the same as MySQL queries. For example, please check the following queries :

Selecting records from the client table

PostgreSQL query:
SELECT * FROM client;

MySQL query:
SELECT * FROM client;

Updating records in the client table

PostgreSQL query:
UPDATE client SET branch="support" WHERE custage > 2;

MySQL query:
UPDATE client SET branch="support" WHERE custage > 2;


PostgreSQL is written in C. It supports the following programming languages: C++, Delphi, Perl, Java, Lua, .NET, Node.js, Python, PHP, Lisp, Go, R, D, Erlang. Most installations are availabl on various Linux servers, cloud-based or on-premise.

MySQL is written in C and C++. It supports following programming languages: C, C++, Delphi, Perl, Java, Lua, .NET, Node.js, Python, PHP, Lisp, Go, R, D, Erlang. Similarly, Cloud-based implementation and platform support is available. Customers have a choice to use the Oracle Corporation version or the open-source build.

This article has shown the differences as well as some of the similarities in PostgreSQL and MySQL.