Sait Talha Nisanci

Sait Talha Nisanci


Former software engineer at Microsoft with a passion for solving difficult problems—like distributed systems. 2nd in Turkey in Google Hash Code. Enjoys competitive programming and can ride a bike, control a drone, toss & catch a frisbee—at the same time. Coordinated.


Sait Talha Nisanci

Citus Tips: JOINs between local & distributed Postgres tables

Written by By Sait Talha Nisanci | July 2, 2021 Jul 2, 2021

If you have a large PostgreSQL database that runs on a single node, eventually the single node’s resources—such as memory, CPU, and disk—may deliver query responses that are too slow. That is when you may want to use the Citus extension to Postgres to distribute your tables across a cluster of Postgres nodes.

In your large database, Citus will shine for large tables, since the distributed Citus tables will benefit from the memory across all of the nodes in the cluster. But what if your Postgres database also contains some small tables which easily fit into a single node’s memory? You might be wondering: do you need to distribute these smaller tables, even though there wouldn’t be much performance gain from distributing them?

Fortunately, as of the Citus 10 release, you do not have to choose: you can distribute your large tables across a Citus cluster and continue using your smaller tables as local Postgres tables on the Citus coordinator.

One of the new features in Citus 10 that enables you to use a hybrid “local+distributed” Postgres database is that you can now JOIN local tables and distributed tables. (The other new Citus 10 feature has to do with foreign keys between local and reference tables.)

Keep reading

Page 1 of 1