A queue worker that runs for days is a PHP process living outside every assumption the language makes about lifetime, and the first one to break is the…
ALTER TABLE on 30 million rows blocks writes for 40 minutes, and checkout writes to that table. A shadow table, triggers, and a backfill paced by replication lag.
Until 2.2, an order’s status was a term in a shop_order_status taxonomy. From 2.2 it is a custom post status with a wc- prefix, and the upgrade routine…
PDO’s MySQL driver emulates prepared statements by default. prepare() does not talk to the server; PDO keeps the string, and execute() substitutes the values into it with its…
phpMyAdmin exports a database inside a PHP request, so it is bounded by max_execution_time, memory_limit, the web server’s own timeout and the browser staying open. Somewhere around a…
Without a persistent object cache, a transient is two rows in wp_options — the value and a timeout — and expiry is checked nowhere except inside get_transient(), which…
A query answering in 20 ms locally and timing out on four million rows. An anonymised data subset that keeps the query plan honest, and the mail, cron…