You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何PostgreSQL 13的pg_commit_ts目录为空?

PostgreSQL中pg_commit_ts目录的功能及为空原因

一、pg_commit_ts目录的功能

pg_commit_ts是PostgreSQL 10及以后版本引入的目录,主要用于存储每个事务的提交时间戳。这个时间戳记录了事务成功提交的精确时间,PostgreSQL会用它优化部分后台操作(比如提升并行VACUUM的效率),同时也能支持一些依赖事务提交顺序或时间的业务场景。

二、目录为空的原因

你的pg_commit_ts目录为空,核心原因是PostgreSQL默认关闭了事务提交时间戳的跟踪功能——track_commit_timestamp参数默认值为off。

因为跟踪事务提交时间会带来额外性能开销(需要为每个提交的事务写入时间戳数据),所以PostgreSQL默认不启用该功能。即便你执行了插入数据的事务,只要这个参数没开启,系统就不会往pg_commit_ts目录写入任何数据。

开启该功能的步骤

要让pg_commit_ts目录生成数据,需修改PostgreSQL配置文件postgresql.conf:

  1. 找到track_commit_timestamp参数,将其值改为on
  2. 重启PostgreSQL服务
  3. 之后新提交的事务,其提交时间戳就会被写入pg_commit_ts目录下的文件中

注意:开启该功能后,仅会记录开启之后新提交的事务时间戳,之前的事务不会被回溯记录。

内容的提问来源于stack exchange,提问作者Monika Yadav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 10:52:06