Effortless PostgreSQL Table Partitioning with pg_rewrite
Partitioning PostgreSQL tables has quickly become one of the most popular methods to scale and improve database performance. However, partitioning existing tables without locking your database is often a major pain point.
That’s where pg_rewrite comes in—a simple, elegant tool that allows you to repartition PostgreSQL tables with minimal locking. In this guide, you’ll learn how to install and use it.
🔧 Installing pg_rewrite
To get started, clone the open-source project from GitHub:
Make sure the correct version of pg_config is in your path:
Then build and install the extension:
PostgreSQL Configuration
Update your postgresql.conf with the following settings:
Restart PostgreSQL and verify the extension is loaded:
Then create the extension:
🧪 Creating a Sample Table
Now let’s create a test table that we’ll later partition:
Confirm the data distribution:
Make sure the table has a primary key:
🗂 Setting Up Partitioned Tables
Create your partitioned structure. For this example, we’ll split values into negative and positive ranges:
☝ Make sure the primary key and constraints match the original table, or the rewrite will fail.
🚀 Partitioning with Minimal Locking
Run the rewrite operation:
-
t_number: original table -
t_part_number: new partitioned table -
t_old_number: backup of the original (for rollback, if needed)
Check the resulting structure:
You’ll see:
-
t_number(now a partitioned table) -
t_old_number(backup of the original table) -
t_part_number_neg,t_part_number_pos(partition tables)
🎉 Why Use pg_rewrite?
Unlike traditional PostgreSQL partitioning, pg_rewrite minimizes locking by using a rewrite strategy. It’s ideal for large tables and production systems where downtime is unacceptable.
🌍 Bonus: Prebuilt GIS Data for PostgreSQL
We also offer ready-to-import OpenStreetMap (OSM) data for PostgreSQL on our new GIS site. These dumps are ideal for large PostGIS workloads and take full advantage of partitioning.
Check out the GIS resource page →
👨💼 About Enteros
Enteros is a patented database performance management platform that identifies and resolves complex performance issues across a wide range of environments—including SQL, NoSQL, and ML databases—on any cloud or on-prem infrastructure.
The views expressed on this blog are those of the author and do not necessarily reflect the opinions of Enteros Inc. This blog may contain links to the content of third-party sites. By providing such links, Enteros Inc. does not adopt, guarantee, approve, or endorse the information, views, or products available on such sites.
Are you interested in writing for Enteros’ Blog? Please send us a pitch!
RELATED POSTS
What Are the Best Ways to Improve Database Performance in Banking and BFSI?
- 1 September 2026
- Database Performance Management
Improving database performance in banking requires continuous database monitoring, SQL query optimization, intelligent indexing, capacity planning, anomaly detection, and proactive root cause analysis. Banks should also establish performance baselines and use AI-powered database observability to identify issues before transactions are affected. Enteros helps banking and BFSI organizations improve database reliability, scalability, efficiency, and transaction performance … Continue reading “What Are the Best Ways to Improve Database Performance in Banking and BFSI?”
How Can Banks Prevent Database Bottlenecks in Real-Time Financial Transactions?
Banks can prevent database bottlenecks in banking by continuously monitoring SQL workloads, optimizing queries and indexes, detecting resource contention, analyzing transaction latency, and identifying anomalies before performance declines. Effective database performance monitoring for banks provides real-time workload visibility and faster root cause analysis. Enteros helps financial institutions identify database inefficiencies and maintain reliable, scalable transaction … Continue reading “How Can Banks Prevent Database Bottlenecks in Real-Time Financial Transactions?”
Why Is Database Observability Important for Modern Hospitals and Healthcare IT Teams?
Database observability in healthcare is important because hospitals depend on databases to power EHRs, patient portals, clinical applications, billing, analytics, and other essential systems. It gives healthcare IT teams deeper visibility into SQL workloads, resource usage, bottlenecks, and performance changes. Enteros supports this approach with database observability, AI-powered analysis, anomaly detection, and root cause analysis … Continue reading “Why Is Database Observability Important for Modern Hospitals and Healthcare IT Teams?”
How Can Healthcare Organizations Reduce Cloud Database Costs With AIOps and FinOps
Healthcare organizations can reduce cloud database costs by combining AIOps with FinOps to identify inefficient workloads, detect anomalies, rightsize resources, and connect database performance with infrastructure spending. Effective healthcare cloud database cost optimization focuses on eliminating waste without compromising reliability. Enteros supports this approach through database observability, AI-powered SQL analysis, root cause analysis, performance intelligence, … Continue reading “How Can Healthcare Organizations Reduce Cloud Database Costs With AIOps and FinOps”