为什么 postgres 数据库服务器在使用 --no-owner 选项 dump/restore 后变慢?
Why postgres database server slows down after dump/restore with --no-owner option?
当我执行 dump/restore 时,一切正常。但是当我添加选项 --no-owner
和 dump/restore 数据库时,查询速度变慢。
例如,一个复杂的查询 运行 在 dump/restore
之前约 3 分钟而不是 1sec
唯一改变的是 --no-owner
for pg_dump
utility
我想当使用 --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.
我想比较如何使用 w/o --no-owner
选项转储数据库并在今天晚些时候展示
由于错误而变慢:
HINT: Must be superuser to create this extension.
ERROR: extension "btree_gist" does not exist
没有创建扩展,所以也没有创建相关索引。
没有索引数据库slows-down =(
当我用权利修正错误时,所有的一切也开始超快地工作!
当我执行 dump/restore 时,一切正常。但是当我添加选项 --no-owner
和 dump/restore 数据库时,查询速度变慢。
例如,一个复杂的查询 运行 在 dump/restore
唯一改变的是 --no-owner
for pg_dump
utility
我想当使用 --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.
我想比较如何使用 w/o --no-owner
选项转储数据库并在今天晚些时候展示
由于错误而变慢:
HINT: Must be superuser to create this extension.
ERROR: extension "btree_gist" does not exist
没有创建扩展,所以也没有创建相关索引。
没有索引数据库slows-down =(
当我用权利修正错误时,所有的一切也开始超快地工作!