MySQL moving to long-term-support and innovation tracks, which changes the upgrade question from when to which. The innovation track is for people who want a feature now and…
A query with a hand-written optimiser hint from 2019, re-examined after an upgrade, where the hint was now choosing the worse plan. A hint is a decision frozen…
An index on (customer_id) alongside one on (customer_id, created_at), where the first is a prefix of the second and does nothing. Redundant indexes cost write throughput and buffer…
A retention job deleting eleven million rows a month from a partitioned table, one batch at a time, without touching the partition boundary. The partitioning had been done…
A query creating an internal temporary table that exceeded the in-memory limit on every execution, silently. The ratio of disk to memory temporary tables is the diagnostic and…
A status column where one value covers ninety-four per cent of rows, and an optimiser assuming an even distribution. Histograms are for columns that are skewed and not…
Splitting the billing schema onto its own instance in 2021, and rejoining it three years later because every report crossed the boundary. The reason given in 2021 was…