问题描述
当我转储/还原时,一切正常。但是,当我添加选项--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
未创建扩展名,因此也未创建相关索引。
没有索引,数据库减慢=(
当我修复了权限错误时,所有内容也开始超快工作!