5.6 made many ALTER operations online, and the ones that are not — changing a column type, adding a full-text index — still copy the table while holding a lock. On a large table that is an outage with a schema change attached.
pt-online-schema-change
--alter 'MODIFY COLUMN total BIGINT NOT NULL'
--execute D=shop,t=orders
It builds a copy, installs triggers to keep it current, backfills in chunks, then swaps the tables with a rename. The triggers are the cost: every write to the original does double work for the duration, so it is not free on a write-heavy table. It also needs a primary key and no existing triggers, both of which are worth checking before starting rather than discovering forty minutes in.