代码之家  ›  专栏  ›  技术社区  ›  akahunahi

在Postgres中,在截断或删除行之后,在pg_dump之前执行reindex是否优化pg_restore?

  •  0
  • akahunahi  · 技术社区  · 7 年前

    REINDEX 下面的语句有助于还原操作或转储文件的大小?

    在SO或web上的任何地方都找不到关于此的问题。我在用Postgres9.4清理一个很大的数据库 truncate delete

    表格数据的类型和大小各不相同。

    在这个清理操作之后,我立即执行pg_dump、tar和upload,然后执行pg_restore。它使用目录格式,12个作业并行用于转储,8个用于还原。

    TRUNCATE users;
    DELETE FROM users_email WHERE active = 1;
    
    REINDEX TABLE users;
    REINDEX TABLE users_email;
    

    然后:

    $ pg_dump_9.4 --compress=0 -F directory -j 12 $DB_EXPORT_NAME -f $DB_DUMP_FOLDER 2>> operations.log
    
    $ # do tar and upload with dump then:
    
    $ pg_restore_9.4 -d $DB_IMPORT_NAME -j 8 $DB_DUMP_FOLDER 2>> operations.log
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   Laurenz Albe    7 年前

    这对 pg_dump pg_restore .

    垃圾场 根本不使用索引,它只是将其定义写为 CREATE INDEX 在垃圾场发表声明。表本身是按顺序扫描的。

    使用 创建索引 从垃圾堆里。

    推荐文章