Use an expand/contract approach: add a new column, backfill data in batches, write to both (or keep them in sync), switch reads to the new column, then remove the old one. This avoids long blocking locks and lets you roll out safely.