---
title: "Reflecting on Postgres's weaknesses"
publication: "Postgres Weekly"
issue: 350
published_at: "2020-04-08"
canonical_url: "https://postgresweekly.com/issues/350"
---

This week's Postgres news, views, and tools.       

#350 — April 8, 2020 

[Read on the Web](https://postgresweekly.com/issues/350)   

Postgres Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/v1586270433/ijuzjdzhc2pclam1imnp.jpg)](https://medium.com/@rbranson/10-things-i-hate-about-postgresql-20dbab8c2791)  

[10 Things I Hate About Postgres](https://medium.com/@rbranson/10-things-i-hate-about-postgresql-20dbab8c2791) — [A few weeks ago](https://postgresweekly.com/issues/347) we featured a cheery [‘Postgres is the world’s best database’](https://www.2ndquadrant.com/en/blog/postgresql-is-the-worlds-best-database/) item, but you’ve got to take the rough with the smooth! Rick reminds us that no software is perfect and that even Postgres has flaws 🤭 

Rick Branson   

[Comparing MongoDB vs Postgres over _JOIN_s](https://www.enterprisedb.com/blog/comparison-joins-mongodb-vs-postgresql) — An analysis of structuring data in both MongoDB’s NoSQL world and Postgres’s relational world to model a classical employee-department data model. It’s a little apples and oranges but makes some reasonable points and when something has a Turing Award winner’s name on it, it’s a must read. 

Michael Stonebraker and Álvaro Hernández   [![\](https://copm.s3.amazonaws.com/735990a9.png)](https://pgexperts.com/) 

[Your Data Is Your Business](https://pgexperts.com/) — PGX can help you tune, scale, and monitor your database to keep it performing under the most extreme and unexpected loads. With over 20 years of PostgreSQL experience, we are ready to help you. 

PostgreSQL Experts, Inc. sponsor   

[Optimizing Postgres Performance Through Config Settings](https://info.crunchydata.com/blog/optimize-postgresql-server-performance) — These settings have been covered a lot over the years, but if you want an up to to date one stop shop, this post covers 5 settings worth tuning to optimize your Postgres server, namely: `shared_buffers`, `wal_buffers`, `effective_cache_size`, `work_mem` and `maintenance_work_mem`. 

Tom Swartz   

[Coming to Postgres 13: WAL Monitoring](https://rjuju.github.io/postgresql/2020/04/07/new-in-pg13-WAL-monitoring.html) — Another look at a new feature coming to Postgres. Backends will track information relating to WAL generation, `pg_stat_statements` will be able to track WAL usage, and a new `WAL` option will be available in the `EXPLAIN` command. If you want to play early, you’ll need to build from the [development snapshots](https://www.postgresql.org/download/snapshots/) or repo. 

Julien Rouhaud   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/nfgxq8b2htpbgfqcp0ue.jpg)](https://github.com/okbob/pspg)   

[pspg 3.0: A Unix Pager Designed for Postgres Tables](https://github.com/okbob/pspg) — If you use `psql` you probably use `less` as your pager, but it doesn’t directly support tabular data. This does. The just-dropped version 3.0 supports communication over named pipes or redirected content ([example here](http://okbob.blogspot.com/2020/04/new-pspg-version-300-with-named-pipe.html)). 

Pavel Stehule   

[Faster CI/CD for All Your Software Projects Using Buildkite](https://buildkite.com/?pk_campaign=pgweekly-080420&pk_source=cp-pgweekly&pk_medium=newsletter) — See how Shopify scaled from 300 to 1800 engineers while keeping their build times under 5 minutes. 

Buildkite sponsor   

[Postgres 13 to Allow `pg_stat_statements` to Track Planning Statistics](https://www.depesz.com/2020/04/02/waiting-for-postgresql-13-allow-pg_stat_statements-to-track-planning-statistics/) — [pg_stat_statements](https://www.postgresql.org/docs/current/pgstatstatements.html) is a module for tracking SQL query execution statistics. Postgres 13 is adding more statistics to what is tracked, specifically around planning and execution times. 

Hubert depesz Lubaczewski   

[Michael Paquier: The PostgreSQL 'Person of the Week'](https://postgresql.life/post/michael_paquier/) — A brief interview with one of Postgres’s most familiar names. His favorite extension is [pg_stat_statements](https://www.postgresql.org/docs/current/pgstatstatements.html) which has already made an appearance in this issue :-) 

Andreas Scherbaum      supported by [![Retool\](https://res.cloudinary.com/cpress/image/upload/v1586255470/csxhe00zlog0bec0ptmf.png)](https://retool.com/?utm_source=postgresweekly&utm_medium=newsletter&utm_campaign=apr_8&utm_content=)  

💡**Tip of the Week** 

Getting a quick HTML report of your databases 

I get most of the tips I include in this newsletter from my own use cases or from things I stumble across in the documentation or looking at how open source tools do things. But sometimes I see a tip pop up on Twitter and think, _"oh, that's neat!"_ This is one such example so you can [thank Daniel Westermann](https://twitter.com/westermanndanie/status/1242117182982586372) for surfacing this neat `psql` one liner. 

`psql` is a great tool for interactively working with Postgres, but it can also be used in one-liners at the command line to spit out results of queries, etc. It can be directed to give such output in HTML, so it's trivial to quickly generate an HTML report of the databases on your server, like so:  

psql -c "\l+" -H -q postgres > out.html  

![](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/v1586273327/mjlv8purhzsux4dauhfr.png)   

Of course, you're not just limited to using this with `\l+`, you can use any command or query and spit out the results in HTML in this way. 

This week's tip is sponsored by [Retool](https://retool.com/?utm_source=postgresweekly&utm_medium=newsletter&utm_campaign=apr_8&utm_content=). Build internal tools fast: With Retool you can [focus on what matters](https://retool.com/?utm_source=postgresweekly&utm_medium=newsletter&utm_campaign=apr_8&utm_content=), cutting the time it takes to build custom tools in half.      

🗓**Upcoming Events** 

All of the in-person events we had listed are now cancelled or postponed until further notice due to the COVID outbreak. However, events are looking at ways to run online, so we'll soon be devoting this section to online events, livestreams, etc. 

Please drop us a note if you have such an event we can promote here. Even if you're doing a single scheduled talk on Twitch or YouTube Live, say, we might be able to list it (and it's all free/unpaid). 

- 🔐 [Migrate from Oracle to PostgreSQL with Azure](https://info.microsoft.com/ww-landing-azure-webinar-series-migrate-from-oracle-to-postgresql-with-azure.html) from Microsoft on April 15 at 10am Pacific.
- 🔐 [Creating Graph Databases in Postgres](https://resources.2ndquadrant.com/en/webinar-creating-graph-databases-in-postgresql) with Simon Riggs and 2ndQuadrant on April 15 at 4pm UTC. 

🔐 – requires e-mail address or registration
💵 – costs money to participate          

Curated by [Cooperpress](https://cooperpress.com/), [Peter Cooper](https://twitter.com/peterc), and [Craig Kerstiens](https://twitter.com/craigkerstiens). 

[Change your email address](https://postgresweekly.com/edit_subscription/*|UID|*) or[Stop getting this newsletter](https://postgresweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
