# 如何进行表维护
Paimon表的日常维护是保障查询性能和存储效率的重要环节。主要包括过期快照清理、小文件合并、Manifest文件重写等操作。
#### 过期快照清理
写入表的每个批次都会产生一个新的快照。Paimon会跟踪表元数据中的快照直到它们过期。频繁提交会导致快照快速累积，因此建议对流式写入的表进行定期维护。
- 通过设置snapshot.num-retained.max参数控制保留的快照最大数量，默认值为10。
- 通过设置snapshot.num-retained.min参数控制保留的快照最小数量，默认值为3。
- 通过设置snapshot.time-retained参数控制保留的快照时间范围，超过该时间的快照会被自动清理。
 
#### 小文件合并
流式写入的数据量通常较小，会导致表跟踪大量小文件。通过Compaction将小文件合并为大文件，可以减少Manifest文件数量并提高查询效率。
- 同步Compaction：通过ALTER TABLE语句手动触发，或在写入时自动触发。
- 异步Compaction：通过Flink或Spark提交异步Compaction任务，在后台合并小文件。
 
#### Manifest文件重写
Paimon在写入过程中会不断产生新的Manifest文件。为了优化查询规划性能，可以通过Manifest合并操作将多个小Manifest文件合并为大文件。
- 通过Compaction操作间接触发Manifest文件合并。
- 定期执行表维护操作，确保Manifest文件数量保持在合理范围内。
 
#### 建议
- 建议一：定期清理过期快照，避免快照数量过多导致元数据膨胀。
- 建议二：定期执行Compaction操作，合并小文件优化查询性能。
- 建议三：为重要版本创建Tag，便于快速回滚到特定版本。
- 建议四：监控表的文件数量和存储大小，及时发现和解决存储问题。
 
