shipped_at TIMESTAMP in a migration and the column that ends up in the database are not the same column. MySQL applies two implicit rules to the first TIMESTAMP…
5.6’s online DDL gets summarised as “ALTER TABLE no longer locks”, and adding an index really is online now. Several other alterations are not, they are the ones…
The migrations table records a batch number rather than a position, and migrate:rollback unwinds the highest batch — which is every migration that ran in the last migrate…
WooCommerce 2.0 moved order line items out of a serialised _order_items post meta value and into two dedicated tables. Anything that read that key directly — a sales…
A daily report scanning 1.2 million rows to return two hundred. Why neither obvious index helped, what the composite one costs, and the two answers I turned down.