
# ALTER TABLE修改表数据
- 建议慎用delete、update的mutation操作 标准SQL的更新、删除操作是同步的，即客户端要等服务端返回执行结果（通常是int值）；而ClickHouse的update、delete是通过异步方式实现的，当执行update语句时，服务端立即返回执行成功还是失败结果，但是实际上此时数据还没有修改完成，而是在后台排队等着进行真正的修改，可能会出现操作覆盖的情况，也无法保证操作的原子性。
  业务场景要求有update、delete等操作，建议使用ReplacingMergeTree、CollapsingMergeTree**、** VersionedCollapsingMergeTree引擎，使用方式参见：<https://clickhouse.com/docs/zh/engines/table-engines/mergetree-family/collapsingmergetree/>。
  
- 建议少或不增删数据列 业务提前规划列个数，如果将来有更多列要使用，可以规划预留多列，避免在生产系统跑业务过程中进行大量的alter table modify列操作，导致不可以预知的性能、数据一致性问题。
  
 
