# Why PostgreSQL Part 2

DevFeed: [Why PostgreSQL Part 2](<https://devfeed.tech/articles/why-postgresql-part-2-41113.md>)

Original publisher: [Read original article](<https://www.craigkerstiens.com/2012/05/07/why-postgres-part-2/>)

Author: Map

Published: 2012-05-07T20:55:56Z

Content type: article

Language: en

Sources: [Craig Kerstiens](<https://devfeed.tech/sources/craig-kerstiens.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [migration](<https://devfeed.tech/topics/migration.md>)

Tags: [database](<https://devfeed.tech/tags/database.md>), [databases](<https://devfeed.tech/tags/databases.md>), [development](<https://devfeed.tech/tags/development.md>), [downtime](<https://devfeed.tech/tags/downtime.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [migration](<https://devfeed.tech/tags/migration.md>), [performance](<https://devfeed.tech/tags/performance.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>)

## AI overview

This article lists additional reasons to use PostgreSQL, focusing on features such as concurrent index creation and transactional DDL. It explains that concurrent index creation avoids holding a table lock, with tradeoffs including longer execution time and inability to run inside a transaction. Transactional DDL allows failed schema migrations to be rolled back.

## Source excerpt

This post is a list of many of the reasons to use Postgres, much this content as well as how to use these features will later be curated within PostgresGuide.com. If you need to get started check out Postgres.app for Mac, or get a Cloud instance at Heroku Postgres for free Last week I did a post on the many reasons to use Postgres. My goal with the post was two fold: Call out some of the historical arguments against it that don't hold any more Highlight some of the awesome but more unique features that are less commonly found in databases. Once I published the post it was clear and was immediately pointed out in the comments and on hacker news that I missed quite a few features that I'd mostly come to take for granted. Perhaps this is due to so much awesomeness existing within Postgres. A large thanks to everyone for calling these out. To help consolidate many of these, here's a second list of the many reasons to use PostgreSQL: Create Index Concurrently On most traditional databases when you create an index it holds a lock on the table while it creates the index. This means that the table is more or less useless during that time. When you're starting out this isn't a problem, but as your data grows and you then add indexes later to improve performance it could mean downtime just to add an index. Not surprisingly Postgres has a great means of adding an index without holding that lock. Simply doing CREATE INDEX CONCURRENTLY instead of CREATE INDEX will create your index without holding the lock. Of course with many features there are caveats, in the case of creating your index concurrently it does take somewhere on the order of 2-3 times longer, and cannot be done within a transaction Transactional DDL If you've ever run a migration had something break mid-way, either due to a constraint or some other means you understand what pain can come of quickly untangling such. Typically migrations on a schema are intended to be run holistically and if they fail you want to fu