Who's the Fairest of Them All? Postgres Interface Performance
summary
Automated C and Java clients plus a tiny Postgres extension measure durations for 268 test cases run three times across libpq (normal, one-row interface, copy interface), jdbc and odbc over BSD socket local TCP and remote TCP. Tests record connect-once vs connect every time, printing-to-file vs in-memory, and 50k/10M row strategies. Result: libpq’s one-row interface often wins, jdbc copy performs well, odbc trails, and the worst case (50k one-row remote connecting each time) blows up to ~400s versus ~0.3s for a bulk fetch — the harness runs reliably and yields reproducible numbers.
AI-written summary · about
chapters (28)
- 0:00Intro
- 2:40Methodology
- 3:19Command Line Clients
- 4:10Launcher Script
- 4:50Commandline Clients
- 6:23Driver Tables
- 9:51Sequels
- 11:04Cartesian Join
- 13:25Row Tables
- 14:18Test Results Table
- 15:59Driver Function
- 17:10Launcher
- 17:41Source Code
- 19:14ODBC
- 20:07Java
- 20:56C Extensions
- 22:07The Sequel
- 22:47The Interface Variations
- 25:10Print Track Test
- 25:56Alternate Klein Copy
- 26:22Window Aggregate
- 30:25Window Grouping
- 30:50Local vs Local vs Remote
- 37:18TCP Performance
- 38:05DB Performance
- 39:20Remote Connection Performance
- 40:18Copy Interface Performance
- 41:35Open Source
related talks
48mModern SQL features in PostgreSQL
24mLessons Learned from benchmarking and profiling distributed PostgreSQL
24mFuzzing PostgreSQL
31mDemanding the impossible rigorous database benchm
01h 01mNew Approach to Resolve objectrelational impedance mismatch
40mPerformance is a feature: accelerating Postgres
31mPostgres Performance for Humans
36mBest Practices in PostgreSQL Tuning: Navigating Key Performance Bottlenecks in the Cloud
