October 10, 2025
Don’t Skip ANALYZE: A Real-World PostgreSQL Story
Recently, we worked on a production PostgreSQL database where a customer reported that a specific SELECT query was performing extremely slowly. The issue was critical…
September 26, 2025
Query optimizations in Odoo versions 17–19 for faster PostgreSQL performance
We get a lot of queries about performance optimization for PostgreSQL from organizations using Odoo. The platform has been built entirely on PostgreSQL, and Odoo’s…
September 22, 2025
Understanding PostgreSQL WAL and optimizing it with a dedicated disk
If you manage a PostgreSQL database with heavy write activity, one of the most important components to understand is the Write-Ahead Log (WAL). WAL is…
September 9, 2025
3 Features I am Looking Forward to in PostgreSQL 18
It is that time of the year again. The first release candidate of PostgreSQL 18 is out, and things look promising. We should expect General…
September 4, 2025
Best Practices for Achieving High Availability in PostgreSQL with Patroni and Pgpool
I recently completed a training session for one of our customer on best practices for achieving HA clusters with Patroni and Pgpool in PostgreSQL. During…
September 1, 2025
The Hidden Bottleneck in PostgreSQL Restores and its Solution
In July 2025, during the PG19-1 CommitFest, I reviewed a patch targeting the lack of parallelism when adding foreign keys in pg_restore. Around the same…
August 22, 2025
Cold, Warm, and Hot Standby in PostgreSQL: Key Differences
When working with customers, a common question we get is: “Which standby type is best for our HA needs?” Before answering, we ensure they fully…
August 20, 2025
PostgreSQL Database SLAs: Why Hidden Issues Often Break Customer Commitments
SLAs feel reassuring when signed—but their substance lies in what happens behind the scenes. Often, the most damaging breaches don’t stem from cloud outages or…
August 8, 2025
Achieving High Availability in PostgreSQL: From 90% to 99.999%
When you are running mission-critical applications, like online banking, healthcare systems, or global e-commerce platforms, every second of downtime can cost millions and damage your…
August 7, 2025
When PostgreSQL performance slows down, here is where to look first
PostgreSQL is built to perform. However, as workloads increase and systems evolve, even the most robust setups can begin to show signs of strain. Whether…
July 25, 2025
PostgreSQL 16 Installation on RHEL/CentOS – Step-by-Step Guide
Why Databases? Why PostgreSQL? In today's digital world, data is at the heart of every application, from social media platforms to banking systems, from e-commerce…
July 24, 2025
Post Webinar Blog | Designing Highly Available Postgres for Continuous Operations
Boriss Mejías conducted an in-depth session on “Designing Highly Available Postgres for Continuous Operations” on Wednesday, January 22, 2025, at 3 PM GMT. This webinar…
July 22, 2025
DBA as a Service for PostgreSQL: Expert-Led Support for Databases That Power Your Business
Let us start with some simple math. 24/7 coverage means 168 hours a week. A full-time engineer typically works a 40-hour week. That means you…
July 17, 2025
A Guide to Deploying Production-Grade Highly Available Systems in PostgreSQL
In today’s digital landscape, downtime isn’t just inconvenient, it’s costly. No matter what business you are running, an e-commerce site, a SaaS platform, or critical…
July 11, 2025
PostgreSQL Index Corruption on Windows
PostgreSQL index corruption on Windows can silently bring your systems to a halt. A leading video analytics SaaS platform, built for real-time alerting and operational…
July 10, 2025
Replication Types and Modes in PostgreSQL
Data is a key part of any mission-critical application. Losing it can lead to serious issues, such as financial loss or harm to a business’s…
July 3, 2025
Disaster Recovery Guide with pgbackrest
Recently, we worked with a client who was manually backing up their 800GB PostgreSQL database using pg_dump, which was growing rapidly and had backups stored…
July 1, 2025
From 99.9% to 99.99%: Building PostgreSQL Resilience into Your Product Architecture
Most teams building production applications understand that “uptime” matters. I am writing this blog to demonstrate how much difference an extra 0.09% makes. At 99.9%…
June 27, 2025
Choosing the Right Barman Backup Type and Mode for Your PostgreSQL Highly Available Cluster
When running a PostgreSQL database in a High Availability (HA) cluster, it’s easy to assume that having multiple nodes means your data is safe. But…
June 24, 2025
The Odoo Performance Fix You’ve Been Looking For
When your business depends on Odoo CRM and starts to slow down, operations suffer. That is precisely what happened to a fast-growing delivery company that…
June 20, 2025
Which PostgreSQL HA Solution Fits Your Needs: Pgpool or Patroni?
When designing a highly available PostgreSQL cluster, two popular tools often come into the conversation: Pgpool-II and Patroni. Both are widely used in production environments,…
June 10, 2025
Checklist: Is Your PostgreSQL Deployment Production-Grade?
One of the things I admire most about PostgreSQL is its ease of getting started. I have seen many developers and teams pick it up,…
May 30, 2025
Understanding Split-Brain Scenarios in Highly Available PostgreSQL Clusters
High Availability (HA) refers to a system design approach that ensures a service remains accessible even in the event of hardware or software failures. In…
May 27, 2025
How to Upgrade Major PostgreSQL Versions: A Practical Production Guide
PostgreSQL versions follow a well-defined five-year support lifecycle. Each major release receives bug fixes, security patches, and minor updates for five years from its initial…
May 22, 2025
Best Practices for TimescaleDB Massive Delete Operations
Welcome to the second part of our TimescaleDB best practices series! In the first part, we explored how to perform massive backfill operations efficiently, sharing…
May 16, 2025
How to Safely Perform Backfill Operations in TimescaleDB
Backfilling data into a TimescaleDB hypertable in production can be very tricky, especially when automated processes like compression policies are involved. From past experience, we…
May 13, 2025
Step by Step Guide on Setting Up Physical Streaming Replication in PostgreSQL
Physical streaming replication in PostgreSQL allows you to maintain a live copy of your database on a standby server, which continuously receives updates from the…
May 9, 2025
Improving PostgreSQL Performance with Partitioning
My recommended methodology for performance improvement of PostgreSQL starts with query optimization. The second step is architectural improvements, part of which is the partitioning of…
April 15, 2025
Finding Bottlenecks and Avoiding Over-Optimization via Explain Plans
Performance optimization in a production database is important, but trying to over-optimize can make things more complicated without real improvements. In this post, I’ll share…
April 7, 2025
SELECT FOR UPDATE – Reduce Contention and Avoid Deadlocks to Improve Performance in PostgreSQL
Relational databases are at the heart of countless applications around the world, from high-traffic e-commerce websites to enterprise resource planning (ERP) systems and financial services.…
March 11, 2025
When HASH partitioning works better than RANGE
I have always been a fan of RANGE partitioning using a date/time value in PostgreSQL. This isn't always possible, however, and I recently came across…
February 18, 2025
Important PostgreSQL Parameters: Understanding Their Importance and Recommended Values
Have you ever experienced your database slowing down as the amount of data increases? If so, one important factor to consider is tuning PostgreSQL parameters…
February 3, 2025
A Guide to Restoring a PostgreSQL Database from Disaster Using Azure Flexible Server
Backups are crucial for any mission-critical application as they protect against unforeseen disasters. Regular backups help minimize the Recovery Point Objective (RPO), allowing systems to…
January 23, 2025
Post Webinar Blog | High Availability in Postgres: Your Guide to 5 Nines and Zero Worries
Semab Tariq conducted a comprehensive session on “High Availability in Postgres: Your Guide to 5 Nines and Zero Worries” on Wednesday, January 22, 2025, at…
January 23, 2025
Leveraging autovacuum in PostgreSQL to optimize performance and reduce costs
Autovacuum is one of PostgreSQL's most powerful features, designed to maintain database health and optimize performance by automating routine maintenance tasks. However, improper configuration can…
January 15, 2025
Cut Cloud Costs with Smarter PostgreSQL CPU Core Allocation
Cloud costs can quickly spiral out of control if resources are not optimized. One of the most significant contributors to these costs is CPU core…
January 9, 2025
Idle Transactions Cause Table Bloat? Wait, What?
Yup, you read it right. Idle transactions can cause massive table bloat that the vacuum process may not be able to address. Bloat causes degradation…
December 13, 2024
VACUUM FULL in PostgreSQL – What you need to be mindful of
If you have worked with PostgreSQL for a while, you have probably come across the command VACUUM FULL. At first glance, it might seem like…
December 10, 2024
Understanding Wait Events in PostgreSQL
As databases grow in size and complexity, performance issues inevitably arise. Whether it is slow query execution, lock contention, or disk I/O bottlenecks, identifying the…
December 4, 2024
3 Essential PostgreSQL Priorities for 2025
As IT budgets tighten and workloads increase, 2025 is the year to focus on maximizing PostgreSQL efficiency, security, and reliability. Whether you are running fully-managed…
November 27, 2024
Operator Classes: Fine-Tuning Index Performance in PostgreSQL
Efficient data retrieval is crucial in any production environment, especially for databases handling heavy traffic and large datasets. PostgreSQL’s operator classes are a powerful but…
November 21, 2024
Transitioning from Oracle to PostgreSQL: Roles & Privileges
When moving from Oracle to PostgreSQL, one of the key differences lies in how each database handles roles and privileges. Oracle's privilege model is deeply…
November 19, 2024
What Happens Behind the Scenes When You Modify a Row in PostgreSQL?
Data is often called the new gold, and databases are where we store and manage this precious resource as it constantly changes and grows. At…
November 14, 2024
Transitioning from Oracle to PostgreSQL: Concurrency Control
Transitioning from Oracle to PostgreSQL can be a transformative experience for database administrators because of the subtle differences between the two technologies. Understanding how the…
November 12, 2024
Transitioning from Oracle to PostgreSQL: Indexes
For database experts well-versed in Oracle, moving to PostgreSQL opens up new indexing methods that differ significantly in terms of structure, management, and optimization. While…
November 8, 2024
Scenarios That Trigger Autovacuum in PostgreSQL
PostgreSQL is widely known for its Multi-Version Concurrency Control (MVCC) model, which allows multiple transactions to occur simultaneously without interfering with each other. However, one…
November 6, 2024
Transitioning from Oracle to PostgreSQL: Partitioning
As databases grow, managing large tables becomes more challenging. Table partitioning is a tried-and-tested approach that helps break down large tables into smaller, more manageable…
October 31, 2024
Offline PostgreSQL Installation on RHEL 9: Solving the No Internet Challenge
PostgreSQL is one of the most loved databases, especially by developers, for its simplicity, easy configurations, and massive community support. It's an open-source powerhouse known…
October 28, 2024
Transitioning from Oracle to PostgreSQL: PL/SQL vs PL/pgSQL
Structured Query Language (SQL) is the standard language for managing and manipulating relational databases. It serves as the core mechanism for interacting with databases, enabling…
October 17, 2024
Implementing Bi-Directional Replication in PostgreSQL
In today's fast-paced digital world, ensuring that your data is always up-to-date and accessible is crucial. For businesses using PostgreSQL, replication is a key feature…
October 10, 2024
Transform PostgreSQL into a Columnar Database Using Citus
Columnar databases are transforming the way we handle large datasets by storing data in columns rather than rows. This approach enhances performance, especially for analytical…
October 4, 2024
Transitioning from Oracle to PostgreSQL: Tablespaces
Tablespaces play an important role in database management systems, as they determine where and how database objects like tables and indexes are stored. Both Oracle…
September 26, 2024
Using pg_upgrade to Upgrading Your PostgreSQL Cluster on Windows
Upgrading your PostgreSQL cluster is an important task to keep your database running smoothly and securely. With each new release, PostgreSQL introduces performance improvements, security…
September 19, 2024
Transitioning from Oracle to PostgreSQL: Understanding the Concept of Schema
As businesses increasingly move toward open-source technologies, many Oracle Database professionals find themselves needing to work with PostgreSQL, one of the most popular open-source relational…
September 12, 2024
Optimizing PostgreSQL with Composite and Partial Indexes: A Quick Comparison
Indexes are crucial for accelerating database queries, and enhancing the performance of your PostgreSQL applications. However, not all indexes function the same way. Composite and…
September 10, 2024
Understanding Factors Impacting Data Replication Latency in PostgreSQL Across Geographically Distributed Nodes
In an increasingly globalized world, companies and organizations are leveraging distributed systems to handle massive amounts of data across geographically separated locations. Whether it is…
September 3, 2024
Deploying Your First PostgreSQL Clusters on Kubernetes with Cloud Native Postgres
CloudNativePG is an open-source operator designed to manage PostgreSQL workloads on any supported Kubernetes cluster running in private, public, hybrid, or multi-cloud environments. CloudNativePG adheres…
August 29, 2024
A Beginner’s Guide to Sharding PostgreSQL with Citus
PostgreSQL is a powerful and open-source relational database system known for its reliability, flexibility, and advanced features. It handles complex queries, ensures data integrity, and…
August 27, 2024
PostgreSQL is a viable alternative to Oracle – here is why…
Why pay $100,000 for something you can achieve in $5,000? That’s the main question. Oracle is a long-standing giant in the DBMS world, offering a…
August 22, 2024
Post Webinar Blog: Boosting PostgreSQL Performance: Tools and Techniques for Optimization
Semab Tariq conducted a detailed session on "Boosting PostgreSQL Performance: Tools and Techniques for Optimization" where he talked about the essential strategies and tools you…
August 20, 2024
PostgreSQL Internals Part 4: A Beginner’s Guide to Understanding WAL in PostgreSQL
In this blog, we'll dive into the concept of Write-Ahead Logging (WAL) in PostgreSQL, discussing its importance and examining the internal structure of WAL files.
August 12, 2024
file_fdw: Directly Query Flat Files in PostgreSQL Without Importing
The file_fdw (Foreign Data Wrapper) is a PostgreSQL extension that lets you access data stored in flat files, like CSV files, as if they were…
August 8, 2024
Locks in PostgreSQL – Concurrency Benefits and Performance Challenges
PostgreSQL provides robust support for concurrency control through various locking mechanisms. Locks are critical in managing access to data and ensuring consistency and integrity in…
July 29, 2024
Ensuring Safe Data Modifications in PostgreSQL – Part 2
Concurrency control in databases ensures that multiple transactions can occur simultaneously without causing data errors. It's essential because, without it, two people updating the same...
July 26, 2024
Enhancing PostgreSQL Performance Monitoring: A Comprehensive Guide to pg_stat_statements
PostgreSQL has a rich set of features designed to handle complex queries efficiently. Much like any database system, however, its performance can degrade over time…
July 22, 2024
A Follow up on Key PostgreSQL Configuration Parameters for Enhanced Performance – Part 2
In a previous blog post, we configured an EC2 instance and installed PostgreSQL on it. After the initial setup, we ran pgbench to measure the…
July 10, 2024
Guide to Auditing and Monitoring Access in PostgreSQL
In the data-driven world of today, maintaining the security and integrity of your database is paramount. Auditing and monitoring access to your database are critical…
July 8, 2024
Access Controls in PostgreSQL
Access control is a fundamental aspect of database security, ensuring that only authorized users can perform specific actions on the data. Effective access control helps…
July 3, 2024
Key PostgreSQL Configuration Parameters for Enhanced Performance
Learn how to configure key parameters to boost Transactions Per Second (TPS) and improve overall database performance.
July 1, 2024
Ensuring Safe Data Modifications in PostgreSQL with SELECT FOR UPDATE
Learn how to use PostgreSQL's SELECT FOR UPDATE clause to ensure safe data modifications and prevent data corruption...
June 12, 2024
Exploring the Power of Partitioning in PostgreSQL
Learn about PostgreSQL partitioning, its types, and benefits for optimized database performance.
June 8, 2024
Performance impact of using ORDER BY with LIMIT in PostgreSQL
Learn how the combination of ORDER BY and LIMIT clauses in PostgreSQL affects query performance, and discover optimization techniques to maintain efficient database performance and…
June 4, 2024
Reliable Backups in PostgreSQL – Another Critical Requirement for Financial Organizations
Learn how reliable backups in PostgreSQL can help financial organizations maintain data integrity, comply with regulations, and ensure business continuity.
May 30, 2024
Setting Up a High Availability 3-Node PostgreSQL Cluster with Patroni on Ubuntu 24.04
Learn how to set up a high-availability 3-node PostgreSQL cluster with Patroni on Ubuntu 24.04, ensuring your database is always online and resilient to failures.
May 29, 2024
Protecting Personally Identifiable Information in PostgreSQL: A Critical Requirement for Financial Organizations
Protect personally identifiable information (PII) in PostgreSQL databases, a critical requirement for financial organizations.
May 28, 2024
Monitoring Replication Lag with PEM in Multi-Master Cluster
Learn how to monitor replication lag in a PostgreSQL multi-master cluster using Postgres Enterprise Manager (PEM).
May 23, 2024
Deploying PostgreSQL Multi-Master Multi-Zone Architecture on AWS
Learn how to deploy a highly available and scalable PostgreSQL multi-master multi-zone architecture on AWS, ensuring fault tolerance and geographically distributed write capabilities for your…
May 17, 2024
Understanding Synchronous and Asynchronous Replication in PostgreSQL – What is Best for You?
Learn about synchronous and asynchronous replication in PostgreSQL, including how they work and when to use each.
May 15, 2024
Removing Bloat with pg_repack Extension
PostgreSQL's pg_repack extension offers a solution to database maintenance challenges by optimizing table storage without disrupting operations. It tackles issues like bloat and fragmentation efficiently.…
May 10, 2024
Understanding Multi-Master Architecture in PostgreSQL: Benefits and Trade-offs
Dive into the world of Multi-Master Architecture in PostgreSQL. Learn about its benefits, trade-offs, and how it revolutionizes database management.
May 9, 2024
Understanding PostgreSQL Fill Factor: Benefits, Drawbacks, and Best Practices
Learn how to optimize fill factor to boost database performance, minimize fragmentation, and balance storage needs.
May 8, 2024
Understanding Patroni Failovers
Learn about Patroni, the popular high availability system for PostgreSQL, and how it works to ensure seamless failovers and efficient database management.
April 30, 2024
Logging Basics for PostgreSQL
Explore foundational parameters for maximizing the utility of PostgreSQL logs.
April 25, 2024
7 considerations for PCI DSS compliance in PostgreSQL
Learn how to ensure PCI DSS compliance in your PostgreSQL database with these 7 crucial considerations.
April 18, 2024
PostgreSQL Internals Part 3: Understanding Processes in PostgreSQL
We explore PostgreSQL Internals in detail - its processes, architecture, the different types of processes available, and their respective responsibilities.
April 8, 2024
PostgreSQL Roles and Privileges Simplified
Learn to manage roles and privileges in PostgreSQL, covering databases, schemas, and other objects level privileges.
April 8, 2024
Pitfalls of using SELECT *
Understand how SELECT * can be bad for database performance...
April 4, 2024
Fireside Chat Blog: Oracle to PostgreSQL Migration
Umair Shahid and Jan Karremans got together for an insightful session on why Oracle to PostgreSQL migration is the most suitable choice for mission-critical infrastructures.
April 1, 2024
Peak Performance – pgvector vs. PostgreSQL ARRAY for mass spectrometry databases
The native way to handle vectors in PostgreSQL are ARRAYs. They are first class citizens of PostgreSQL and come with lots of functionality out of…
March 28, 2024
Build HNSW 80% Faster with Parallel Index Build in pgvector
Discover the latest in pgvector 0.6: Parallel Index Building for HNSW. Learn how this major update speeds up index creation in Postgres.
March 22, 2024
PostgreSQL Internals Part 2: Understanding Page Structure
Explore intricacies of PostgreSQL's internal page structure and how pages are organized, their default size, and more.
March 21, 2024
Transitioning from Heroku PostgreSQL to AWS EC2: Step-by-Step Guide
The blog describes all the steps required to safely migrate your Heroku PostgreSQL database to self managed PostgreSQL on AWS EC2 instance using logshipping method.
March 16, 2024
PostgreSQL Internals Part 1: Understanding database cluster, database and tables
Learn about database clusters, databases, and tables to optimize performance and unleash the full potential of PostgreSQL for your projects
March 14, 2024
Understanding the PostgreSQL Query Planner to Improve Query Performance
Learn how the PostgreSQL query planner estimates costs and leverages configuration parameters for efficient data retrieval and increased database performance.
March 13, 2024
Post Webinar Blog: Understanding NUMA policies and their impact on PostgreSQL performance
On Wednesday, 6 March 2024, we hosted an insightful session led by our PostgreSQL Principal Consultant, Chris Travers, on Understanding NUMA policies and their impact…
March 7, 2024
Recovery Hack: Restoring Tablespace Using Barman on Windows
We uncover manual hacks to successfully recover tablespaces with Barman, navigating through encountered errors.
February 27, 2024
The default value of fdw_tuple_cost was updated to 0.2. What does that mean?
This blog post explores the recent change to the fdw_tuple_cost parameter in PostgreSQL, examining the problem it addresses and the reasoning behind the new default…
February 26, 2024
Understand Indexes in pgvector
Explore how pgvector's indexes work, choose the right one for your needs, and find the best option for your critical data.
February 22, 2024
PostgreSQL Backup and Recovery Management using Barman
Barman stands as a widely used open-source tool dedicated to managing backup and disaster recovery operations for PostgreSQL databases.
February 16, 2024
Selective Column Replication in PostgreSQL
Discover selective column replication in PostgreSQL - a powerful feature for replicating specific columns across databases.