Overall Satisfaction with PostgreSQL
PostgreSQL serves as the database for our web-based product. As such it is used by the entire organization and is an integral part of the product.
- Broad array of custom functionality/formulae built atop standard SQL statements
- Transactional support for schema migrations
- Great low-level performance tuning capabilities
- Performant implementation of bulk merge (upsert)
- Some of the custom SQL functions thatPostgreSQL provides could be optimized. Specifically I've seen that the "is contained within" operator for inet columns is slow to the point of being unusable in bulk (e.g. as a join criteria).
- 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.
- MySQL - doesn't have transactional support for schema migrations, and has a more restrictive license
- DB2 - not free
- SQLite - doesn't have full foreign key constraint support
- CouchDB - slightly different use case, however PostgreSQL does offer performant to_json functionality that overlaps with this attractive CouchDB capability