VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

vacuumdb

功能描述

vacuumdb是用于清理和分析Vastbase数据库的工具,是对SQL命令VACUUM的封装。

语法格式

vacuumdb [OPTION]... [DBNAME]

参数说明

通用参数

  • -a, --all

    清理或分析所有数据库。

  • -d, --dbname=DBNAME

    声明要被清理或分析的数据库名称。

    如果没有声明这个参数并且没有使用-a\--all参数,那么从将环境变量PGDATABASE里读取数据库名。 >- 如果未设置环境变量PGDATABASE,则使用连接的用户名。

  • -e, --echo

    回显vacuumdb生成并发送给服务器的命令。

  • -f, --full

    执行“完全”清理,指定该选项可以回收更多的空间,但是需要更长的时间,并需要在表上添加排它锁。

    • 使用该选项需要额外的磁盘空间,因为它会写入表的新副本,并且在操作完成之前不会释放旧副本。通常,只有在需要从表格中回收大量空间时才应使用此选项。

    • 使用该选项会导致统计信息丢失,如果要收集统计信息,需要搭配--analyze选项一起使用。

  • -F, --freeze

    强制“冻结”元组。

  • -q, --quiet

    不显示响应信息。

  • -t, --table='TABLE[(COLUMNS)]'

    指定要清理的表。 可以通过写入多个-t来清理多个表。

    • 当指定列名时需要搭配--analyze选项一起使用。

    • 如果指定某个字段进行清理,必须要在shell上转义圆括弧,例如:

      vacuumdb --analyze --verbose --table 'foo(bar)' xyzzy
      
  • -v, --verbose

    在处理过程中打印详细信息。

  • -V, --version

    打印vacuumdb版本然后退出。

  • -z, --analyze

    收集统计信息以供查询优化器使用。

  • -Z, --analyze-only

    仅计算统计信息以供查询优化器使用(不清理)。

  • -?, --help

    显示帮助信息。

连接参数

  • -h, --host=HOSTNAME

    运行Vastbase数据库服务器的计算机主机名。 如果数值以斜杠开头,则被用作到 Unix 域套接字的路径。

  • -p, --port=PORT

    指定服务器正在侦听的 TCP 端口或本地 Unix 域套接字文件的扩展(描述符)。

  • -U, --username=USERNAME

    连接的用户名。

  • -w, --no-password

    不出现输入密码提示。如果主机要求密码认证并且密码没有通过其它形式给出,则连接尝试将会失败。

  • -W, --password

    强制vacuumdb在连接到数据库之前提示一个密码。

  • --maintenance-db=DBNAME

    指定要连接到的数据库的名字以发现其他应该清理的数据库。

使用示例

用户可以使用VACUUM工具去清理数据库,以保证不断地删除失效的行。尤其是在增删了大量记录之后,对受影响的表执行 VACUUM ANALYZE命令是一个很好的习惯,这样做将更新系统目录为最近的更改,并且允许 PostgreSQL 查询优化器在规划用户查询时有更好的选择。

例如,当用户想要在数据库里某个表上执行VACUUM,可以执行如下命令:

vacuumdb --analyze --verbose --table upser db_mysql