# 如何安全回填数据库中的新列？

Canonical URL: https://help.iagenify.com/zh/faqs/databases/how-should-i-backfill-a-new-database-column-safely

[← 返回数据库常见问题](https://help.iagenify.com/zh/faqs/databases)

帮助中心 · 常见问题 数据库 1 分钟阅读
# 如何安全回填数据库中的新列？
架构变更后回填需要更新现有行；若一次性执行，可能造成大量读写、锁等待或复制延迟。应将其设计为可恢复的后台任务，并尽量与架构部署分开。
IaGenify
数据库

## 先确保变更兼容
以允许新旧应用版本共存的方式添加字段，然后部署能够容忍空值或读取两种格式的代码。现有行尚未填充前，不要立即将字段设为必填。
使用稳定键和进度检查点分批处理。根据数据库负载选择批次大小和速度，并确保任务中断后重复更新仍然安全。
## 收紧约束前验证完成情况
跟踪剩余行数、失败、写入延迟和复制健康状况。抽样将填充值与来源数据比较并调查差异，不要只凭处理行数就认定完成。
回填完成后再考虑强制非空约束或移除兼容代码。保留暂停与继续机制，以便生产负载变化时降低任务速度。 [← 返回数据库常见问题](https://help.iagenify.com/zh/faqs/databases)
