A JOIN between columns with different charsets or collations can quietly turn an index lookup into a full scan. Field notes on how the coercion rules work, the utf8mb3/utf8mb4 upgrade trap, and the queries that find every mismatched column.
Database Topic Archive
MySQL Articles
InnoDB internals, replication, locking, query performance, and MySQL operations notes.
The change buffer turns cold secondary-index page reads into deferred merges. On the right workload it is the reason writes keep up; on NVMe with in-memory indexes it does almost nothing.
A restart with a cold buffer pool can turn into a twenty-minute incident. How innodb_buffer_pool_dump_pct, scheduled dumps, load status checks, and readiness gates make restarts boring.
Row-based binary logging is the right default, but it makes binlog volume a function of how many rows you touch. This covers FULL vs MINIMAL row images, partial JSON logging, expiry settings, and the big-UPDATE binlog explosion.
binlog_expire_logs_seconds makes old files eligible for purge — it does not promise disk headroom, and it does not protect an offline replica. What pins purging, how to purge safely, and how to size retention from write rate.
FTWRL waits for every in-flight statement, then makes everything else wait for it. MySQL 8.0's LOCK INSTANCE FOR BACKUP and performance_schema.log_status give backup tools a lighter path — and you a shorter outage.
When an AUTO_INCREMENT column hits its type's ceiling, every insert on that table fails at once. Field notes on the incident shape, a fleet-wide detection query, signed vs unsigned headroom, and migrating to BIGINT without downtime.
A crash mid-ALTER on 5.7 left orphaned #sql tables and dictionary mismatches you fixed with file surgery. MySQL 8.0's transactional data dictionary ended that era — and quietly retired a few other habits.
The adaptive hash index is a real CPU win on uniform point-lookup workloads and a latch nightmare on skewed ones. Here is how to tell which one you have, and what to do about it.
MySQL 5.7 has been end-of-life since October 2023, and plenty of production fleets still run it. Field notes on the upgrade checker, the removals that actually break apps, and a rollback plan that is honest about being a restore plan.