JSON in PostgreSQL – evil data type or just needs to be tamed? | POSETTE: An Event for Postgres 2026

Estimated read time 2 min read

Post Content

​ Maybe the B in JSONB stands for Beast? Explore schema-design pitfalls, index strategies, and TOAST tables. Boriss Mejias (EDB) presents his talk “JSON in PostgreSQL – evil data type or just needs to be tamed?” at POSETTE: An Event for Postgres 2026. Abstract: You heard that PostgreSQL also supports the JSON data type, and you wanted to enjoy the dynamism of schema freedom mixed with the benefits of a relational database. You wanted a flexible data type combined with columns with strong types, with relationships between tables, and with constraints to guarantee data integrity. But now that you have integrated JSON deep in your schema design, you start observing odd behaviors, unpredictable performance, and unused indexes. You start to wonder if you haven’t introduced an evil data type disguised as a friendly and flexible object. Maybe there are things you could do in Postgres to make things run faster. Are some indexes better than others? What about table partitioning? And what about TOAST tables? Do they play a role accessing the data stored in JSON? Or …

maybe the B in JSONB stands for Beast? Can you tame the JSONB objects?

In this talk we will review schema-design decisions when using JSON/JSONB in PostgreSQL, with some tips and tricks, based on experience working with real case scenarios. We will work through a case study to create a pragmatic view of working with JSON/JSONB in PostgreSQL.

Boriss Mejias is a Solutions Architect (EDB) working with Postgres since 9.1 and is organizer of the Belgian Postgres meetup.

► Video chapters:
⏩ 00:00 – Music & introduction
⏩ 01:12 – The power of schema freedom
⏩ 02:49 – Metal music use case with JSON objects
⏩ 03:48 – Designing tables with JSONB columns
⏩ 05:37 – Extracting ids for relational integrity
⏩ 07:46 – Hybrid schema design with metal album reviews
⏩ 09:04 – Indexing JSON for performance gains
⏩ 13:09 – Trigram (pg_trgm) indexing for text search
⏩ 15:06 – Enforcing types and constraints in JSON
⏩ 19:13 – Schema changes and update tradeoffs
⏩ 21:12 – Optimizing updates with “frequently updated fields”
⏩ 23:21 – Key takeaways and design principles

📕 Everything you need to know about POSETTE: An Event for Postgres can be found at: https://posetteconf.com
✅ Learn more: watch more POSETTE talks: https://aka.ms/posette-playlist

📌 Let’s connect:
LinkedIn: https://www.linkedin.com/company/posetteconf/
X – @PosetteConf, https://x.com/PosetteConf
Mastodon – @posetteconf, https://mastodon.social/@posetteconf
Bluesky – @posetteconf.com, https://aka.ms/posette-on-bluesky

#PosetteConf #PostgreSQL #JSON   Read More Microsoft Developer 

You May Also Like

More From Author