Trusty database for years
March 27, 2017

Trusty database for years

Anonymous | TrustRadius Reviewer
Score 10 out of 10
Vetted Review
Verified User

Overall Satisfaction with PostgreSQL

We use PostgreSQL as a central location for relational data. Almost all of our applications tie into PostgreSQL in one way or another. We also use PostgreSQL as a data warehouse and analytics engine for several hundred gigabytes of data. That figure continues to rise rapidly, and PostgreSQL is handling the load perfectly well.
  • Correctness. Before using PostgreSQL, most of my relational database experience was with MySQL. I originally chose to work with MySQL because it seemed easier to setup than PostgreSQL. There were a lot of things I loved about MySQL--choice of engines, speed, simplicity. What I did not like, though, was that the default behavior of truncating data if it exceeded the size of a varchar field, for example. Definitely not a hard problem to solve, but as a default it drove me nuts. PostgreSQL does the right thing in this case and in so many others where MySQL had strange defaults. (MySQL may have improved in the years since I last used it.)
  • Flexibility. PostgreSQL makes it easy to add new functionality through custom extensions. The custom functionality can be as simple as a helper function, or it can be as complex as changing the way data is assigned to various nodes in a cluster. Very powerful feature.
  • Features. PostgreSQL has a ton of awesome features built in. One of my favorite features is native support for useful data types such as JSON/JSONB (including the ability to query and create indexes on deeply nested values).
  • Clustering/sharding/replication. PostgreSQL has definitely made great progress in the replication area in recent years. Upcoming releases are going to handle more of the clustering/sharding pain points better from what I've read. Right now... it's just not terribly fantastic.
  • Really, most of my gripes with PostgreSQL have to do with managing a cluster of servers.
  • We have extensions such as Citus, but it would be great for that stuff to be built into PostgreSQL. And still have the ability to manage clustering a different way using custom extensions.
  • Reliable data storage, with easy backup and restore capabilities.
  • Low overhead. PostgreSQL can easily run on very large instances, but its actual resource overhead is such that it runs well on very small instances too.
  • Open source and free. Only investment required is the time required to install and learn how to configure it. Almost everything else is common knowledge for any SQL-based RDBMS.
As mentioned previously, I came from primarily a MySQL background. I had used other databases such as SQL Server and Oracle, but MySQL is what I used most of the time for my RDBMS needs before switching to PostgreSQL. MySQL/MariaDB certainly have some great strengths, but I feel that they sacrifice features for simplicity. A lot of those sacrificed features are built into PostgreSQL or only an extension away, and they can relieve a ton of pressure on your application layer.
PostgreSQL has handled every workload I've handed to it quite well. With proper table structuring and indexing, it handles OLTP and OLAP workloads very well. PostgreSQL is also great at isolating data if you need to ensure that one user cannot access another user's information. Row-level access controls in PostgreSQL are fantastic.