# Why use Postgres (Updated for last 5 years)

DevFeed: [Why use Postgres (Updated for last 5 years)](<https://devfeed.tech/articles/why-use-postgres-updated-for-last-5-years-41195.md>)

Original publisher: [Read original article](<https://www.craigkerstiens.com/2017/04/30/why-postgres-five-years-later/>)

Author: Map

Published: 2017-04-30T20:55:56Z

Content type: article

Language: en

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

Topics: [Database](<https://devfeed.tech/topics/database.md>), [distributed-systems](<https://devfeed.tech/topics/distributed-systems.md>), [JSON](<https://devfeed.tech/topics/json.md>)

Tags: [database](<https://devfeed.tech/tags/database.md>), [distributed-systems](<https://devfeed.tech/tags/distributed-systems.md>), [extensions](<https://devfeed.tech/tags/extensions.md>), [json](<https://devfeed.tech/tags/json.md>), [jsonb](<https://devfeed.tech/tags/jsonb.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>)

## AI overview

An updated overview of reasons to use Postgres, focusing on JSONB and range types, indexing and querying capabilities, constraints, and extensions such as Citus and HyperLogLog.

## Source excerpt

Five years ago I wrote a post that got some good attention on why you should use Postgres. Almost a year later I added a bunch of things I missed. Many of those items bear repeating, and I'll recap a few of those in the latter half of this post. But in the last 4-5 years there's been a lot of improvements and more reasons added to the list of why you should use Postgres. Here's the rundown of the things that make Postgres a great database you should consider using. Datatypes, including JSONB and range types Postgres has long had an open and friendly attitude for adding datatypes. It's had arrays, geospatical and more for some time. A few years ago it got two datatypes worth thinking about using: JSONB JSONB is a binary representation of JSON. It's capable of being indexed on with GIN and GIST index types. You can also query into your full JSON document for quick lookups. Range types While it didn't arrive to the same fame as JSONB, range types can be especially handy if they're what you need. Within a single column you can have a range from one value to another-this is especially helpful for time ranges. If you're building a calendaring application or often have a from and to of timestamps then range types can let you put that in a single column. The real benefit is that you can then have constraints that certain time stamps can't overlap or other constraints that may make sense for your application. Extensions It'd be hard to talk about Postgres without all the ecosystem around it. Extensions are increasingly quite key when it comes to the community and growth of Postgres. Extensions allow you to hook into Postgres very natively without requiring them to be committed back to the core of Postgres. This means they can add rich functionality without being tied to a Postgres release and review cycle. Some great examples of this are: Citus Citus (who I work for) turns Postgres into a distributed database allowing you to easily shard your database across multiple nodes.