The activity stream lives in its own tables with its own query class, so every WordPress instinct about WP_Query, post meta and the loop is wrong here. The…
The restore is the part that fails, and finding that out during an incident is the worst possible moment to discover the dump has been missing a table…
It reads, finds nothing, and inserts. Two requests doing that concurrently both find nothing and both insert, which is why the duplicates appear only under load. The unique…
Six applications with six database users means six sets of grants maintained by hand, and the reporting tool ends up with write access because copying an existing user…
Two workers selecting the next unprocessed row with FOR UPDATE serialise — the second waits for the first — so adding workers adds no throughput at all. SKIP…
Reaching for a GUI to answer one question about a database means finding credentials, a tunnel and a browser, when the site’s own configuration already has all of…
Apache, Nginx, PHP, MySQL, Redis, Beanstalkd and a mail catcher, on a laptop. Onboarding measured in minutes rather than days, and what it costs to run.
Comparing a row with the previous one — time between orders, change since the last reading — was a self join on a correlated subquery finding the preceding…