The Data Transformation Company

Data Architecture, Engineering and Operations for SQL, NoSQL, NewSQL, Cloud Native Data Platforms, Analytics and AI

  • MinervaDB
    • GCC Data Leadership
    • For CTOs
    • For CIOs
    • Essential Remote DBA
  • Engineering
    • Data Science & AI
    • Cloud FinOps
    • Databricks
    • Snowflake
    • Microsoft Azure
    • AWS
    • Google Cloud
    • AI and Vector Data
    • MySQL
    • PostgreSQL
    • PostgreSQL on Kubernetes
    • SQL Server Consulting
    • MariaDB Consulting
    • MongoDB Consulting
    • Ticketing System
  • Support
    • Enterprise Support
    • 24/7 Emergency DBA
    • SQL Server Support
    • MongoDB Support
    • NoSQL
    • Kafka Support
  • Remote DBA
    • 24*7 Emergency DBA
    • 24/7 Remote DBA Works
    • Performance Optimization
    • PostgreSQL DBA
    • 24/7 MySQL DBA
    • 24/7 MariaDB DBA
    • NoSQL Services
    • MongoDB Services
  • Blog
    • Shiv Iyer Talks
    • MinervaDB Blog
  • Careers
  • Contact
    • MinervaDB Contacts
    • Book an Appointment
    • MinervaDB FAQ
    • MinervaDB Privacy Policy
    • Cookie Policy
  • Facebook
    • Data Ops. Geek
  • Twitter
    • @MinervaDB
    • @ShivIyer
    • @ChistaDATA
  • LinkedIn
    • Shiv Iyer
  • GitHub
    • @ShivIyer
HomePostgreSQL Performance

PostgreSQL Performance

PostgreSQL Replication Lag
PostgreSQL

Troubleshooting PostgreSQL Streaming Replication Lag in Production

PostgreSQL replication lag troubleshooting: measure send, flush and replay lag via pg_stat_replication, isolate the bottleneck stage, and fix it.
[...]
PostgreSQL Index Bloat
Indexing

Detecting and Fixing PostgreSQL Index Bloat with REINDEX CONCURRENTLY

PostgreSQL index bloat: measure it with pgstattuple, understand why B-trees inflate, and rebuild online with REINDEX CONCURRENTLY without downtime.
[...]
PostgreSQL Wait Events
Monitoring

PostgreSQL Wait Event Analysis: Finding Bottlenecks with pg_stat_activity

PostgreSQL wait events explained: sample pg_stat_activity, interpret Lock, LWLock, IO and Client waits, and turn wait profiles into targeted fixes.
[...]
PostgreSQL Autovacuum Tuning
PostgreSQL

Diagnosing Autovacuum Lag and Table Bloat in PostgreSQL Production Systems

PostgreSQL autovacuum tuning for production: diagnose autovacuum lag, measure table bloat, fix per-table thresholds, and prevent wraparound risk.
[...]
PgBouncer performance tuning
Database Performance Tuning

PgBouncer Pool Saturation: Diagnosing Connection Bottlenecks in PostgreSQL

PgBouncer performance tuning for PostgreSQL: diagnose pool saturation with SHOW POOLS, read cl_waiting correctly, size pools, and fix bottlenecks.
[...]
PostgreSQL Slow Query Troubleshooting
PostgreSQL

Troubleshooting Slow PostgreSQL Queries with EXPLAIN ANALYZE and pg_stat_statements

PostgreSQL slow query troubleshooting with EXPLAIN ANALYZE and pg_stat_statements: find, diagnose, and fix slow queries in production, step by step.
[...]
CloudNativePG
Cloud Databases

Setting Sail: Installing CloudNativePG (CNPG) for PostgreSQL on Kubernetes

Running PostgreSQL on Kubernetes used to feel like a daunting challenge reserved for platform engineering teams with deep operational expertise. That reality has changed. With CloudNativePG (CNPG), deploying a production-grade PostgreSQL cluster on Kubernetes is [...]
PostgreSQL 18 Performance
MinervaDB

PostgreSQL 18 Performance Configuration Matrix: New Parameters and MinervaDB Tuning Recommendations

The release of PostgreSQL 18 introduces one of the most consequential rounds of configuration changes the project has shipped in years. For database engineers and site reliability teams, understanding PostgreSQL 18 performance tuning is no [...]
Partitioned Table Statistics
MinervaDB

Partitioned Table Statistics in PostgreSQL: How ANALYZE Fixed a Slow Query

Partitioned table statistics are one of the most misunderstood corners of PostgreSQL performance tuning, and getting partitioned table statistics right is often the fastest win available to a DBA. A partitioned table can look perfectly [...]
UPDATE LIMIT in PostgreSQL
Datatbase Systems

How to Do UPDATE … LIMIT in PostgreSQL (With Standard SQL Alternatives)

If you have ever migrated a workload from MySQL to PostgreSQL, you have probably hit a wall the first time you tried to run a statement like UPDATE mytable SET status = 'done' LIMIT 100;. [...]

Posts pagination

1 2 … 33 »

Search MinervaDB Blog 🔎

Tell us how we can help!

Loading

★Read this WARNING★

* Everything changes over time – Our blogs/posts and comments changes over time, That’s how it should be! Whatever we comment from MinervaDB Inc. Teams (including Shiv Iyer) and other stakeholders or guest bloggers posted here are never permanent, These things worked for us. But, there is no guarantee they will work for you too, When using the recommendations from ChistaDATA or MinervaDB or MinervaSQL or any other online resources / Google,  You must test the advice before applying them to your production systems, and always invest for a robust Database DR solution, Thank you for understanding. 

Recent Posts ✏

  • Troubleshooting PostgreSQL Streaming Replication Lag in Production
  • Detecting and Fixing PostgreSQL Index Bloat with REINDEX CONCURRENTLY
  • PostgreSQL Wait Event Analysis: Finding Bottlenecks with pg_stat_activity
  • Diagnosing Autovacuum Lag and Table Bloat in PostgreSQL Production Systems
  • PgBouncer Pool Saturation: Diagnosing Connection Bottlenecks in PostgreSQL

☎ Contact Global Sales (24*7)

📞 (844) 588-7287 (USA)

📞 (415) 212-6625 (USA)

 

☎ TOLL FREE PHONE (24*7)

(844) 588-7287 

📌 Our Support Channels (24*7)

✔ Email
✔ IRC
✔ Phone
✔ Ticketing System

🚩 MinervaDB FAX

+1 (209) 314-2364

Corporate Address: California

MinervaDB Inc.
440 N BARRANCA AVE #9718 COVINA,
CA 91723
════════════════════════════════
Email: contact@minervadb.com

Corporate Address: Delaware

MinervaDB Inc.,
PO Box 2093 PHILADELPHIA PIKE #3339
CLAYMONT, DE 19703
════════════════════════════════

Email: contact@minervadb.com

📨 Contact MinervaDB (24*7)

 Email – contact@minervadb.com 

(We are online 24*7)

☛ Contact Shiv Iyer
▬▬▬▬▬▬▬▬▬▬▬▬▬
 Email – shiv@minervadb.com

HOW CAN WE HELP?

We are committed to building Optimal, Scalable, Highly Available, Reliable, Fault-Tolerant and Secured Database Infrastructure Operations for WebScale to our customers globally

📨 Contact MinervaDB Support (24*7)

✔ Support (24*7) – support@minervadb.com

✔ Google Hangouts – support@minervadb.com

(for emergency support and quick response)

💲Flexible Payment

✔ Wire

✔ PayPal

✔ Credit / Debit Cards

✔ Cheque

✔ Cash

★ Discounts ★

Discounts are applicable only for multi-year contracts / long-term engagements, We don’t hire low-quality and cheap rookie consultants to manage your mission-critical Database Systems Infrastructure Operations and so our consulting rates are competitive. Being a virtual corporation (no physical offices anywhere in the world), whatever you pay go directly to our consultant’s fee. It’s impossible for us to offer you low-cost consulting, support and remote DBA services with elite-class team, Thanks for understanding and doing business with MinervaDB.

PostgreSQL is a registered trademark of the PostgreSQL Community Association. ClickHouse is a registered trademark of ClickHouse, Inc. MongoDB is a registered trademark of MongoDB, Inc. Couchbase is a registered trademark of Couchbase, Inc. Redis is a registered trademark of Redis Ltd. Apache Cassandra is a registered trademark of the Apache Software Foundation. Milvus is a registered trademark of Zilliz. MinIO is a registered trademark of MinIO, Inc. Amazon Redshift and Amazon Aurora are registered trademarks of [Amazon.com](http://amazon.com/), Inc. Google Cloud is a registered trademark of Google LLC. Snowflake is a registered trademark of Snowflake Inc. Databricks is a registered trademark of Databricks, Inc. MySQL and InnoDB are registered trademarks of Oracle Corporation. MariaDB is a trademark of MariaDB Corporation Ab. All other trademarks are the property of their respective owners. Copyright © 2010–2026. All Rights Reserved by MinervaDB®.

Table of Contents

×
  • Why PostgreSQL Does Not Support UPDATE … LIMIT
  • The Standard SQL Way: UPDATE With a Subquery
  • Using a CTE for Cleaner UPDATE … LIMIT Logic
  • Locking Rows Safely With FOR UPDATE and SKIP LOCKED
  • How to Do DELETE … LIMIT in PostgreSQL
  • Processing an Entire Table in Batches
  • Keying Batches on an Indexed Column
  • Performance Considerations for UPDATE LIMIT in PostgreSQL
  • A Complete Job-Queue Example
  • Frequently Asked Questions
  • Further Reading and References on UPDATE LIMIT in PostgreSQL
  • Conclusion
→ Index