Postgresql

A shop ledger page, 1899. Every line adds up.
How to Add Semantic Search to an Existing Web Application
Add semantic search by combining embeddings with metadata filters, keyword search where useful, and relevance evaluation.
2 min read
How to Deploy Django on Azure for Production
Deploy Django on Azure with explicit settings, managed database connectivity, static files, health checks, and a repeatable release process.
2 min read
How to Debug a Slow PostgreSQL Query
Use query timings, EXPLAIN plans, row estimates, and workload context to identify why a PostgreSQL query is slow.
2 min read
How to Run Database Migrations Safely in a Production SaaS Application
Plan safer production database migrations with backward-compatible schema changes, staged rollouts, lock awareness, data backfills, and rollback planning.
4 min read
How to Find and Fix Slow Django API Endpoints
Diagnose slow Django REST API endpoints by measuring query time, identifying N+1 queries, improving pagination, and checking database indexes before changing infrastructure.
4 min read
Keeping Postgres Data Across Docker Deploys, with Startup Order and Domain Routing
Use named volumes so a redeploy does not wipe your database, make the app wait for Postgres with a healthcheck, route a domain through Caddy, and keep backups.
4 min read
Indexes vs Write Speed: Weighing the Tradeoff on Busy PostgreSQL Tables
Every index speeds reads and taxes writes. Learn how to find unused indexes, understand write amplification, and use partial indexes to keep the benefit with less cost.
4 min read
Reading EXPLAIN ANALYZE When You Are New to PostgreSQL
A beginner-friendly way to read EXPLAIN ANALYZE output: what to look at first, how to compare estimated and actual rows, and what the buffers numbers tell you.
5 min read
The Missing Index on a JOIN: The Beginner Fix for Slow PostgreSQL Queries
PostgreSQL does not index foreign key columns automatically. Learn how to spot the missing index behind a slow JOIN and add it safely with CREATE INDEX CONCURRENTLY.
4 min read
Celery Scales Workers but Exhausts the Database Connection Pool
More Celery workers means more PostgreSQL connections. Do the concurrency math, set CONN_MAX_AGE sensibly, and use pgbouncer to avoid too many clients errors.
5 min read