An online schema change for the ALTER that would lock

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.