Likelihood to Recommend
PostgreSQL is open source, and then, there are several companies that could give you technical support, like EnterpriseDB or Percona.
PostgreSQL is easy to install and configure and is multi-platform, you could use Windows, Mac, Linux, FreeBSD, and you could use ALL the hardware you have purchased for your project, without sinking hundreds of thousand of dollars in proprietary software, to use only a small part of your server for the database.
Let's see a concrete case: You have a project to make an information system which uses an underlying database. Then you purchase 3 servers, which cost USD 50K for the Production server, USD 25K for the Contingency Server and USD 10K for the Development Server.
If you use a proprietary database, we know what companies, they price their software licenses per every 2 cores if we use the servers physically or every 2 vcpus (threads) if we use virtual machines, and the cost range is between USD 15K and 50K for each 2 cores license. If my production server has a configuration of 24 SSDs of 3,84 TB, 2 TB of ECC RAM, and 2 CPUs AMD EPYC 7702, with 64 cores each (128 cores and 256 vcpus or threads per server), the cost of the proprietary database could be more than USD one million, and if we use a subscription mechanism to get the updates, we could be talking of another million each 3 to 5 years. That is ten times the cost of the hardware. And you can TOUCH the hardware.
Is PostgreSQL slower than the proprietary databases that we talk about? Yes; but for what margin? In in-house tests, the performance of PostgreSQL was from 50% to 75% typically, with several scenarios where PostgreSQL where speedier. But we could use ALL the cores for the DBMS, not just a few.
For us PostgreSQL is the best database in existence. Period. If we use proprietary databases yet it's only for legacy information systems, for contractual restrictions or because our providers haven't seen the light (yet).
- As I mentioned before, Postgres has an incredibly flexible and simple-to-use user/role management system. First, there are users--login information so that you can hand out to individual users. Then, there are roles, which specify read and/or write access to all the tables that you can assign to users. Through this system, you can easily control who can read and update which tables, and the system is very well-tested, so there's no concern with users accessing or writing to data that they shouldn't be unless your Postgres admin really messes up!
- I could write pages on this and would need to reference the Postgres manual itself to do this justice, but Postgres is dang scalable! There are so many ways to scale it. Postgres has undergone active development by some of the brightest engineers for over 30 years now, and the result is that Postgres has so many ways you can scale it besides just upping the SSD and CPU and memory speed. You can scale reads horizontally through multiple slaves that handle all the reads. You can add highly optimized indices to your tables. You can change columns to JSONB types for super fast JSON queries. You can turn on special caches to bulk writes so they don't overwhelm the disk. Between those three options and other tips and tricks experienced Postgres admins have, you can get a lot out of them. There's a reason Yahoo stuck with Postgres for decades up until their main database even past the point of 4 Petabytes and 10k writes/second!
- Postgres, simply put, has achieved super-wide industry adoption (6% market share), which means it's really easy to integrate it into your stack and hire knowledgeable developers to service Postgres. All the major database libraries of the common web frameworks that I know are out there (e.g. Rails-ActiveRecord, Spring-Hibernate, Play Scala-Slick) have out-of-the-box deep Postgres support, with no extra configuration needed to get your web app to start reading and writing to Postgres. I also know many universities in the US include Postgres in their curriculum too (e.g. UC Berkeley). It's really easy to hire either new grads or experienced software engineers for positions that require Postgres knowledge.
- If you are comparing Postgres to MySQL and you want to use JSON, know that Postgres has better performance and features on indexing JSON blobs simply because Postgres beat MySQL to the JSON game by several years. I haven't used MySQL's JSON support before, but that's what my co-workers say (and it's true that Postgres definitely started support mySQL years earlier).
Engineer in EngineeringInternet Company, 201-500 employees
- Deployment gets difficult for folks who are habituated with commercial databases.
- We cannot write our own database engine unlike MySQL.
- PostgreSQL do not allow us to execute batch of statement. we have to embed it in a function to achieve this.
Likelihood to Renew
Based on 1 answer
Based on 6 answers
Postgresql is the best tool out there for relational data so I have to give it a high rating when it comes to analytics, data availability and consistency, so on and so forth. SQL is also a relatively consistent language so when it comes to building new tables and loading data in from the OLTP database, there are enough tools where we can perform ETL on a scalable basis.
Engineer in EngineeringInformation Technology and Services Company, 10,001+ employees
Reliability and Availability
Based on 1 answer
PostgreSQL's availability is top notch. Apart from connection time-out for an idle user, the database is super reliable.
Based on 1 answer
The data queries are relatively quick for a small to medium sized table. With complex joins, and a wide and deep table however, the performance of the query has room for improvement.
Based on 13 answers
Its a really great product that has rich features which are well suited for our needs. It also has a NoSQL option which could be useful in some cases. And most importantly it's free to use which is always great.There's still room for improvement though, for example, the installation and upgrade process could be made easier, online resources could be improved as well.
Engineer in Information TechnologyProfessional Training & Coaching Company, 11-50 employees
The online training is request based. Had there been recorded videos available online for potential users to benefit from, I could have rated it higher. The online documentation however is very helpful. The online documentation PDF is downloadable and allows users to pace their own learning. With examples and code snippets, the documentation is great starting point.
Based on 2 answers
Based on 1 answer
Return on Investment
- By pushing a lot of logic into database views and triggers, PostgreSQL provides the ability to write much slimmer and more maintainable controller code, reducing development costs.
- PostgreSQL's upsert capabilities enabled us to go to scale much more easily and quickly, allowing us to increase our number of customers.
Premium Consulting/Integration Services—
Entry-level set up fee?