Try our new research platform with insights from 80,000+ expert users
PeerSpot user
Database Expert with 201-500 employees
Vendor
A quick look at PostgreSQL

PostgreSQL at glance

PostgreSQL is a first class product with high end enterprise class level features. This first chapter is a general review on the product with a brief talk on the database's history.

A long time ago in a galaxy far far away...

Following the works of the Berkeley's Professor Michael Stonebraker, in 1996 Marc G. Fournier asked for any volunteer interested in revamping the Postgres 95 project.

The answer came from Bruce Momjian,Thomas Lockhart, and Vadim Mikheev, the very first PostgreSQL Global Development Team.

Features

Every time a new major release is released, new powerful features join the rich set of the product's functionalities. Here is a small excerpt of what the latest version offers in terms of flexibility and reliability.

Write ahead logging

Like any RDBMS worth of this name, PostgreSQL has the write ahead logging feature. In short, when a data block is updated the change is saved in a reliable location, the so called write ahead log. The effective write on the datafile is performed later. Should the database crash the WAL is scanned and the saved blocks are replayed during the crash recovery. PostgreSQL stores the redo records in fixed size segments, usually 16 MB. When the wal segment is full PostgreSQL switches to a newly created or recycled wal segment in the process called log switch.

Point in time recovery

When the log switch happens it is possible to archive the previous segment in a safe location. Taking an inconsistent copy of the data directory is possible to restore a fully functional cluster because the archived wal segments has all the information to replay the physical data blocks on the inconsistent data files. The restore can be, optionally stopped at a given point in time. For example is possible to recover a PostgreSQL cluster to one second before the a catastrophic happening (e.g. a table drop).

Standby server and high availability

The inconsistent snapshot can be configured to stay up in continuous archive recovery. PostgreSQL 8.4 supports the warm standby configuration where the standby server does not accept connections. From the version 9.0 it is possible to enable the hot standby configuration to access the standby server in read only mode.

Streaming replication

The wal archiving doesn't work in real time. The wal shipping happens only after the log switch and in a low activity server this can leave the standby behind the master for a while. Using the streaming replication a standby server can get the wal blocks over a database connection in almost real time.

Transactional

PostgreSQL fully supports the transactions and is ACID compliant. From the version 8.0 the save points were introduced.

Procedural languages

Among the rich of feature procedural language pl/pgsql, many procedural languages such as perl or python are available for writing database functions. The DO keyword was introduced in the 9.1 to have anonymous function's code blocks.

Partitioning

The partitioning, implemented in PostgreSQL is still very basic. The partitions are tables connected with one empty parent table using the table's inheritance. Defining check constraints on the partitioned criteria the database can exclude, querying the parent table, the partitions not affected by the where condition. As the physical storage is distinct for each partition and there's no global primary key enforcement nor foreign keys can be defined on the partitioned structure.

Cost based optimizer

The cost based optimizer, or CBO, is the one of PostgreSQL's point of strength. The query execution is dynamically determined and self adapting to the underlying data structure or the estimated amount of data affected. PostgreSQL supports also the genetic query optimizer GEQO.

Multi platform support

PostgreSQL nowadays supports almost any unix flavor and from the the version 8.0 is native to Windows.

Tablespaces

The tablespace support permits the data files fine grain distribution on the OS filesystems.

MVCC

The way PostgreSQL keeps things consistent is the MVCC which stands for Multi Version Concurrency Control. The mechanism is neat and efficient, offering great advantages and one single disadvantage. We'll see in detail further but keep in mind this important sentence.
There's no such thing like an update in PostgreSQL.

Triggers

Triggers to execute automated tasks on when DML is performed on tables and also views are supported at any level. The events triggers are also supported.

Views

The read only views are well consolidated in PostgreSQL. In version 9.3 the support for the materialized and updatable was added. Also the implementation is still very basic as no incremental refresh for the mat views nor update is possible on complex views. Anyway it is still possible to replicate this behavior using the triggers and procedures.

Constraint enforcement

PostgreSQL supports primary keys and unique keys to enforce local data meanwhile the referential integrity is guaranteed with the foreign keys. The check constraint to validate custom data sets is also supported.

Extension system

PostgreSQL implements the extension system. Almost all the previously known contrib modules are now implemented in this efficient way to add feature to the server using a simple SQL command.

Disclosure: My company does not have a business relationship with this vendor other than being a customer.
PeerSpot user
it_user4401 - PeerSpot reviewer
it_user4401Developer at a transportation company with 1,001-5,000 employees
Vendor

Can you tell me, please, what tools are available for using PostgreSQL with web pages?

PeerSpot user
Database Expert with 201-500 employees
Vendor
Worked for years on Oracle, decided to move to PostgreSQL because it's a first class product. The partitioning is basic.

What is most valuable?

The SQL is very close to the standard, the richness of of procedural languages and the strong attitude to the data reliability.

How has it helped my organization?

The product is used to ensure the data delivery and the HA features are used to enforce a non stop service.

What needs improvement?

The partitioning, is still very basic and not touched for years.

For how long have I used the solution?

7 years

What was my experience with deployment of the solution?

More a lack of knowledge rather an issue. PostgreSQL implements the data management in a very peculiar way. Ignoring this can result in disasters. And often this does happens. A better explanation about the architecture will reduce the risk.

What do I think about the stability of the solution?

Not on the production side. I’ve seen a lot of bugs or misconceptions on the HA side. Same as question 7, It’s more a lack of information than an issue.

What do I think about the scalability of the solution?

The product scales pretty well.

How are customer service and technical support?

Customer Service: As this is an community managed system there’s no customer service. There are companies offering support, I never used as I don’t need it.Technical Support: Quite good. The mailing list are a good way to have quick response. What really lacks is a centralized knowledge base like the Oracle’s metalink/otn. That is what I’m really missing from the oracle universe.

Which solution did I use previously and why did I switch?

I worked for years on Oracle. I decided to move on PostgreSQL because I think is a first class product.

How was the initial setup?

Using the packaged way is almost immediate to install the product. Even the compile from source is a task any system administrator or advanced linux user can do it without any problem.

What about the implementation team?

It’s an in house team.

What's my experience with pricing, setup cost, and licensing?

Basically zero for both. The product is released under the BSD license and, apart from my salary, my employer have no extra costs on using PostgreSQL

Which other solutions did I evaluate?

I considered in the past MySQL and Firebird.

What other advice do I have?

Employ a DBA to work together with the developers.
Disclosure: My company does not have a business relationship with this vendor other than being a customer.
PeerSpot user
Buyer's Guide
PostgreSQL
May 2025
Learn what your peers think about PostgreSQL. Get advice and tips from experienced pros sharing their opinions. Updated: May 2025.
856,873 professionals have used our research since 2012.
it_user5931 - PeerSpot reviewer
Developer at a university with 51-200 employees
Vendor
PostgreSQL is a Powerful and Full Featured Relational Database Management System

Valuable Features:

Before PostgreSQL, I am an avid user of MySQL for a long time. When I began my masters in a renowned school, I was introduced to PostgreSQL and started to like it. Here are the few things I have loved about Postgres: • It is free and compatible in all platforms • It performs very quickly and can outperform Oracle, SQL server and IBM DB2 • It uses SQL windowing functions which are rarely found in other open source database platforms • It uses CREATE EXTENSION which can easily extend without changing the database structure and no code compilation • It has multiple programming languages such as SQL, PL/pgSQL, PL/Perl, PL/Python, PL/Java, and PL/R etc. • The custom type support is very easy to use and very sophisticated which competes Oracle in terms of performance

Room for Improvement:

• Windows versions were released ten years after the initial release • Replication is not so powerful in later versions • Postgres is not so popular compare to MySQL • PostgreSQL community has lesser support

Other Advice:

I cannot stress how highly I recommend PostgreSQL to my fellow programmers. The features and functionalities are beyond the abilities of other free database platforms and are comparable to the proprietary ones. Some advanced features may also be seen to the license databases but you’ll amaze how advance PostgreSQL may become in the future but in zero cost.
Disclosure: My company does not have a business relationship with this vendor other than being a customer.
PeerSpot user
it_user6579 - PeerSpot reviewer
it_user6579Engineer at a tech services company with 1,001-5,000 employees
Consultant

Yes agree with ambapo, Procedural language support is one of the great feature and advantage of PostgreSQL.

See all 3 comments
it_user1077 - PeerSpot reviewer
Developer at a tech company with 51-200 employees
Real User
PostgreSQL is one of the best Open Source, Object-Relational Data Base Management System available in the market with great features

Valuable Features:

1) Supports large part of SQL standards like Complex queries, stored procedures.2) As source code is free and open, it can be easily distributed, modified and extended according to user requirements.3) PostgreSQL also proves to be a cost-effective solution for organization's as this product is designed and created to have much lower maintenance without compromising on features.4) Excellent GUI tools available for PostgreSQL like pgAdmin III.

Room for Improvement:

1) It tends to be slower when processing a large number of records.2) Does not support the entire ANSI SQL 92' standard.3) More open source applications (software stacks) supports MySQL, but some of them may not support PostgreSQL4) Comparatively small user community than MySQL 5) Installation and setup is bit complex and requires technical know how. Though PostgreSQL is comparatively slower than MySQL, but can handle a heavier workload, and also supports various SQL features like foreign keys, triggers, stored procedures and transaction rollback.

Other Advice:

Great Documentation, active community support, excellent management & development tools and availability on various platforms makes PostgreSQL a good data base management system.
Disclosure: My company does not have a business relationship with this vendor other than being a customer.
PeerSpot user
it_user6579 - PeerSpot reviewer
it_user6579Engineer at a tech services company with 1,001-5,000 employees
Consultant

Nice review by Engineer359. Yes PostgreSQL is one of the best Open Source RDBMS available in the market which doesn't need any license cost. Agree with author on pros and cons mentioned by him for the PostgreSQL. Even i would like to add some points based on my experience.
1) Complete support for sub queries
2) Great GUI tool PG Admin
3) Support Views
4) Extensible
5) Great Documentation available on internet

See all 2 comments
it_user1227 - PeerSpot reviewer
Tech Support Staff at a tech company with 51-200 employees
Real User
Unified database with single storage engine, supports a large number of features not available in other storage engines.

Valuable Features:

Out of all the open source database applications available, PostgreSQL is among the best DB storage engines with a single unified database server unlike MySQL which supports multiple storage engines for storing the data. PostgreSQL was specifically designed and developed with a focus on features and standards whereas MySQL was designed with a focus on speed. So, if you are looking for a large number of features and support for various standards, then PostgreSQL is the answer. PostgreSQL supports scalability on write intensive tasks. It also supports asynchronous commit, which is generally missing from other similar DB applications. It is fully ACID compliant.

Room for Improvement:

PostgreSQL does not multiple back-end storage engines unlike MySQL. It does not perform well when dealt with read-only DB queries. It is not very efficient in handling COUNT(*) queries. PostgreSQL does not support queries like 'INSERT IGNORE', which inserts if a row doesn't exist, and 'REPLACE' which replaces the current row, both of which are supported by MySQL. Another query missing from PostgreSQL is "INSERT ... ON DUPLICATE UPDATE ". PostgreSQL does not have an unsigned integer data type. PostgreSQL is limited to 32 columns per index.

Other Advice:

PostgreSQL is one of the best open source DB storage application which supports only one backend storage engine. PostgreSQL is well known for the number of features it supports and the standards followed. PostgreSQL is pretty slow when dealing with queries like COUNT(*) and many of the queries like 'INSERT IGNORE', which inserts if a row doesn't exist, and 'REPLACE' which replaces the current row. It is also limited to 32 columns per index. If you are looking for a speed, then you have to look for other DB engines available e.g. MySQL.
Disclosure: My company does not have a business relationship with this vendor other than being a customer.
PeerSpot user
it_user3876 - PeerSpot reviewer
it_user3876Database Manager at a tech company with 51-200 employees
Real User

As all the database systems can be optimized according to their environment, so it is very difficult to compare them with regard to their performance without paying due attention to their configuration and environment. Both Postgres and MySQL provide various technologies to improve performance.