pg_dump工具导出表数据时是否会导出dead tuples(死元组)
pg_dump导出数据是否包含死元组解答
首先明确结论:你使用的PostgreSQL 10.18版本对应的pg_dump工具,导出表数据时不会包含死元组(dead tuples)。
具体原因和相关说明如下:
- pg_dump执行导出时会为所有待导出对象创建事务级的一致性快照,仅导出该快照时间点下对当前事务可见的有效数据。
- 死元组本质是被DELETE、UPDATE操作标记为过期,尚未被VACUUM操作清理的无效数据,这类数据默认对所有正常业务事务都不可见,自然也不会被pg_dump的快照捕获纳入导出范围。
- 即便表因为未及时做VACUUM出现磁盘占用远大于有效数据量的膨胀问题,最终生成的dump文件大小也仅和有效数据量匹配,不会额外包含死元组对应的内容。
- 上述逻辑适用于所有支持MVCC机制的PostgreSQL版本,和你使用的10.18版本没有版本特异性差异。
内容的提问来源于stack exchange,提问作者Fabrice Chapuis
相关产品推荐
相关产品推荐

