Databases & Caching
MySQL/MariaDB tuning, backups, replication and Redis.
Databases & Caching articles
MySQL Character Sets and Collations
MySQL's 'utf8' is a 3-byte subset that can't store emoji or some CJK. Use utf8mb4. Here's the full charset/collation model and how to fix a garbled database.
October 24, 2026Table Partitioning Strategies
Partitioning splits one logical table into physical chunks. It shines for time-series retention and pruning big scans — and hurts if your queries don't hit the partition key.
October 24, 2026Database Deadlocks Explained
A deadlock is two transactions each holding a lock the other needs. The engine kills one. Here's how to read the log and remove the cause — usually inconsistent lock order.
October 24, 2026PostgreSQL Autovacuum Tuning
Autovacuum reclaims dead rows and prevents transaction-ID wraparound. When it falls behind, tables bloat and queries slow — here's the formula and the fixes.
October 24, 2026Reading a MySQL EXPLAIN Plan
EXPLAIN tells you how MySQL will run a query. Learn to read the type, key, rows, and Extra columns and most slow-query mysteries solve themselves.
October 24, 2026Redis as a Cache: maxmemory and Eviction Policies
Redis only evicts when you tell it to. Here's what each maxmemory-policy does, why allkeys-lfu is usually right for a cache, and how expiry actually works.
October 24, 2026Safe Online Schema Changes in MySQL
A naive ALTER TABLE on a big table locks it for minutes. Here's how to tell which changes are instant, which need a tool, and the deploy pattern that never breaks.
October 24, 2026Database Connection Pooling Explained
A database connection is expensive to create and the server can only handle so many. Pooling reuses a small set — here's how to size it and where to put it.
October 24, 2026MySQL Backups with Percona XtraBackup
mysqldump doesn't scale past a few dozen GB. XtraBackup takes a consistent physical backup of a running InnoDB database with near-zero locking.
October 24, 2026InnoDB Buffer Pool Sizing
The buffer pool is the single most important MySQL memory setting. Too small and you're disk-bound; too big and you swap. Here's how to get it right.
October 24, 2026Redis Persistence: RDB vs AOF
RDB is a compact point-in-time snapshot; AOF logs every write for better durability. Most production Redis should run both — here's why and how.
October 24, 2026MySQL Replication Basics
How MySQL replication actually works, GTID vs binlog coordinates, and the handful of commands for setup, lag monitoring, and un-breaking a stuck replica.
October 24, 2026