vacuumdb 命令的作用是可以清理并优化一个 PostgreSQL 数据库。
vacuumdb 命令也将产生由 PostgreSQL 查询优化器所使用的内部统计信息。
vacuumdb 命令是 SQL 命令 VACUUM 的一个包装器。在通过这个工具和其他方法访问服务器来清理和分析数据库之间没有实质性的区别。虽然在新版本的 PostgreSQL 中有自动的 vacuum,但是如果是大批量的数据 IO 可能会导致自动执行很慢,需要配合手动执行以及自己的脚本来清理数据库。
语法格式:vacuumdb [参数] [数据库名]
-a | 清理所有的数据库 |
-d< 数据库名称 > | 清理指定的数据库 |
-e | 显示发送到服务端的命令 |
-f | 完全清理 |
-F | 冻结记录的事务信息 |
-q | 不写任何信息 |
-t< 表名 > | 只清理指定的表 |
-U< 用户名 > | 指定连接的用户名 |
-w | 永远不提示输入口令 |
-W | 强制提示输入口令 |
-h< 主机名 > | 数据库服务器所在主机的主机名或套接字目录 |
-p< 端口号 > | 指定数据库服务器端口号 |
-z | 更新优化器信息 |
-v | 输出大量的信息 |
参考实例
清理所有的数据库:
[root@linuxvip ~]# su - postgres
$ vacuumdb -a
为优化器清理和分析一个名为 bigdb 的数据库:
[root@linuxvip ~]# su - postgres
$ vacuumdb -z bigdb
清理数据库 linuxvip 中的 table1 表:
[root@linuxvip ~]# su - postgres
$ vacuumdb -d linuxvip -t 'table1'
正文完
发表至: 📂文件管理
2020-09-22