为什么在使用--no-owner选项进行转储/还原后,postgres数据库服务器会变慢?

问题描述

当我转储/还原时,一切正常。但是,当我添加选项--no-owner并转储/还原数据库时,查询速度变慢。
例如,在转储/恢复之前,一个复杂的查询运行大约 3分钟而不是1秒

唯一更改的是--no-owner实用程序的pg_dump

我想在使用--no-owner选项进行转储并还原此类数据库时,则还原数据库用户无权访问索引信息。但这只是假设

详细信息
make docker-dbdump && make docker-dbrestore降低了查询执行速度:

.OnesHELL:
docker-dbdump:
    file=${APP_ROOT}/db/${DB_NAME}-$$(date "+%Y-%m-%d_%H-%M-%s").sql.gz
    docker exec ${DOCKER_CONTAINER} pg_dump --no-owner -U postgres ${DB_NAME} \
      | gzip -f > $${file}
    cp $${file} ${APP_ROOT}/db/${DB_NAME}.sql.gz

docker-dbrestore: dbclear
    zcat ${APP_ROOT}/db/${DB_NAME}.sql.gz | \
        docker exec -i ${DOCKER_CONTAINER} psql -U ${DB_USER} -d ${DB_NAME}

当我删除--no-owner选项时,一切都很好。

UPD

ERROR:  permission denied to create extension "btree_gist"
HINT:  Must be superuser to create this extension.
ERROR:  extension "btree_gist" does not exist
...
ERROR:  data type integer has no default operator class for access method "gist"
HINT:  You must specify an operator class for the index or define a default operator class for the data type.

我想比较不带--no-owner选项的数据库的转储方式,并在今天晚些时候显示

解决方法

由于错误而减慢速度:

HINT:  Must be superuser to create this extension.
ERROR:  extension "btree_gist" does not exist

未创建扩展名,因此也未创建相关索引。

没有索引,数据库减慢=(

当我修复了权限错误时,所有内容也开始超快工作!