1

我正在针对碎片问题对在 Docker 容器中运行的数据库进行基准测试,并发现 autovacuum 守护程序没有运行。

SELECT
    schemaname, relname,
    last_vacuum, last_autovacuum,
    vacuum_count, autovacuum_count  -- not available on 9.0 and earlier
FROM pg_stat_user_tables;

给出:

| schemaname | relname     |last_vacuum| last_autovacuum |vacuum_count| autovacuum_count |
|------------|-------------|-----------|-----------------|------------| -----------------|
| public     | mt_doc_order|   <null>  |    <null>       |      0     |         0        |

因此,我遇到了碎片表演效果:

在此处输入图像描述

当我启动 PostgreSQL Docker 容器时,如何确保这个 autovacuum 守护进程正在运行?

4

1 回答 1

3

运行 SQL 语句

ALTER SYSTEM SET autovacuum = on;

作为超级用户,然后重新启动 PostgreSQL 服务器进程。

于 2019-05-22T15:16:46.397 回答