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.
February 14, 2024
PostgreSQL Tuning and DBtune
Learn how DBtune simplifies PostgreSQL parameter tuning and helps in achieving peak performance based on workload.
February 13, 2024
Enhancing PostgreSQL Performance by Scaling Horizontally using PL/Proxy
Discover how PL/Proxy enhances PostgreSQL performance through efficient horizontal scaling. Learn the pros, cons, and best practices for optimizing your database systems.
January 19, 2024
Understanding Hash aggregates and Hash Joins in PostgreSQL
Discover the reasons behind a planner's selection of Hash aggregate and Hash joins for data processing and understand their workings through this blog.
January 10, 2024
Logical Replication in PostgreSQL
Understand the components involved in logical replication, how it differentiates from streaming replication and the factors to consider.
January 5, 2024
The Next 20 Years of PostgreSQL: Embracing Better Persuasion
Simon Riggs, a luminary in the PostgreSQL community and a strategic advisor to Stormatics, recently addressed the future trajectory of PostgreSQL recently addressed a keynote at…
January 3, 2024
AI Meets PostgreSQL – The pgvector Revolution in Text Search
Explore how pgvector works to find words with similar meanings, enhancing the intelligence of databases for a more advanced user experience.
December 27, 2023
Checkpoints, Background Writer and how to monitor it using pg_stat_bgwriter
Understand Checkpoints and how they differ from background writer in PostgreSQL. Learn how to monitor them using pg_stat_bgwriter view.
December 26, 2023
Distributed Data in PostgreSQL with postgres_fdw: A Guide to Enhanced Performance and Flexibility
postgres_fdw allows seamless access into external PostgreSQL databases as if it were local to your current database...
December 19, 2023
An Introduction to EDB’s Transparent Data Encryption
We take a detailed look at EDB’s solution and also provide a few notes about what has been proposed for community Postgres...
December 14, 2023
Understanding Triggers In PostgreSQL
Think of triggers as the silent guardians behind the scenes, ensuring data integrity, enforcing business rules, and automating repetitive tasks.
December 6, 2023
Understand Table Statistics Using pg_stat_all_tables
Learn how pg_stat_all_tables provides statistics on tables usage and how to utilize it for better performance.
December 1, 2023
PostgreSQL with Python – A Developer’s Guide
This guide will delve into the seamless integration of PostgreSQL and Python, covering optimal connection methods and demonstrating how to execute CRUD operations (Create, Read,…
November 24, 2023
How To Set Up and Run a PostgreSQL Database Using Docker
Learn how to set up Postgres using Docker: this tutorial will help you install a PostgreSQL database using a Docker container.
November 23, 2023
Unlocking Secure Connections: A Guide to PostgreSQL Authentication Methods
Our in-depth guide takes a look at the most used authentication methods in PostgreSQL, along with unraveling its critical role in securing valuable information.
November 17, 2023
An Introduction to Indexing and Partitioning in PostgreSQL
How to optimize your data storage and retrieval strategies. Two common techniques for improving database performance and manageability are indexing and partitioning.
November 15, 2023
Database Concurrency: Two phase Locking (2PL) to MVCC – Part 2
Discover how Multi-Version Concurrency Control (MVCC) works in Postgresql with its isolation level. Learn internal concepts regarding MVCC implementation in psotgresql and how concurrent transaction…
November 10, 2023
Database Concurrency: Two phase Locking (2PL) to MVCC – Part 1
Discover how Two-Phase Locking (2PL) and Multi-Version Concurrency Control (MVCC) ensures data integrity and transaction concurrency.
November 9, 2023
Efficient Time-Series Data Handling: Exploring TimescaleDB in PostgreSQL
Explore how integration of TimescaleDB into your PostgreSQL environment is a critical move towards efficient time-series data handling.
November 2, 2023
Performance tuning in PostgreSQL using shared_buffers
Explore the sweet spot for shared_buffers allocation and ensure your PostgreSQL system runs at its peak efficiency.
October 26, 2023
Understand Explain Plans in PostgreSQL
Learn how Explain plans can empower you to understand and optimize PostgreSQL queries.
October 20, 2023
PostgreSQL performance tuning using work_mem
Enhance PostgreSQL query performance of your database with our guide on optimizing work_mem.
October 12, 2023
Boosting Database Performance: The Power of Connection Pooling with PgBouncer
In the database landscape, connection pooling is a must to ensure everything runs smoothly. It’s like having a savvy assistant that saves you money by…
October 4, 2023
Vacuum in PostgreSQL
Learn how vacuum maintains your database peak performance, prevents data bloat and keeps your transactions running smoothly. Explore Transaction Wraparound issue in PostgreSQL, types of…