LightDB数据库-AutoVacuum收集统计信息

来源:这里教程网 时间:2026-03-14 20:36:31 作者:

LightDB 通过 pg_cron 模块来实现每日在最空闲时间来运行一次 vacuum analyze 命令。

可通过修改 postgresql.conf 配置项自动收集:

autovacuum = on # 开启自动收集

autovacuum_naptime = 15min  # vacuum 间隔时间 15min

Track_counts=on  # 打开收集表和索引上的访问的统计信息

Track_activities=on # 允许跟踪每个 session 执行的 SQL 命令的信息 track_io_timing=on # 允许统计 I/O 调用的时间

AutoVacuum 会启动后台进程运行

对于大表, analyze 命令只读取表的部分内容随机抽样,完成统计信息收集。如果想要统计信息更加准确,可以通过修改参数抽样比例default _statistics_target= 256,默认为 100 ,如果设置的过大,也会拉长收集信息的时间,根据表的行数而定。

同时,可以手动指定列有多少个唯一值,命令:

ALTER TABLE tb1 ALTER COLUMN id set ( n_distinct =2000);

对于继承表,设置 表时,子表可以继续父表的设置,命令:

ALTER TABLE tb1 ALTER COLUMN id set ( n_distinct_inherited =2000);

相关推荐