| PostgreSQL | ||
|---|---|---|
| 上一页 | 下一页 | |
VACUUM — 清理和分析 Postgres 数据库
VACUUM [ VERBOSE ] [ ANALYZE ] [ table ] VACUUM [ VERBOSE ] ANALYZE [ table [ (column [, ...] ) ] ]
VACUUM 在 Postgres 里有两个用途,一个是重新整理存储区,另一个是为优化器收集信息.
VACUUM 打开数据库中每个表,将回卷的事务的记录清除,并且更新系统目录里的统计信息.(数据库)维护的统计信息包括记录条数和所有表使用的存储页面数.
定期地运行 VACUUM 可以提高数据库处理用户查询的速度.
打开的数据库是 VACUUM 的目标.
我们建议在每天夜间清理生产数据库,以保证统计数据足够新.不过,VACUUM 查询可以在任何时候进行.尤其是在向 Postgres 中拷贝了一个大表或删除了大量记录后,执行一个 VACUUM 查询是一个很好的习惯.这样做将更新系统目录为最近的更改,并且允许 Postgres 查询优化器在规划用户查询时有更好的选择.
下面是一个在 regression (回归)数据库里某个表上执行 VACUUM 的一个例子:
regression=> vacuum verbose analyze onek;
NOTICE: --Relation onek--
NOTICE: Pages 98: Changed 25, Reapped 74, Empty 0, New 0;
Tup 1000: Vac 3000, Crash 0, UnUsed 0, MinLen 188, MaxLen 188;
Re-using: Free/Avail. Space 586952/586952; EndEmpty/Avail. Pages 0/74.
Elapsed 0/0 sec.
NOTICE: Index onek_stringu1: Pages 28; Tuples 1000: Deleted 3000. Elapsed 0/0 sec.
NOTICE: Index onek_hundred: Pages 12; Tuples 1000: Deleted 3000. Elapsed 0/0 sec.
NOTICE: Index onek_unique2: Pages 19; Tuples 1000: Deleted 3000. Elapsed 0/0 sec.
NOTICE: Index onek_unique1: Pages 17; Tuples 1000: Deleted 3000. Elapsed 0/0 sec.
NOTICE: Rel onek: Pages: 98 --> 25; Tuple(s) moved: 1000. Elapsed 0/1 sec.
NOTICE: Index onek_stringu1: Pages 28; Tuples 1000: Deleted 1000. Elapsed 0/0 sec.
NOTICE: Index onek_hundred: Pages 12; Tuples 1000: Deleted 1000. Elapsed 0/0 sec.
NOTICE: Index onek_unique2: Pages 19; Tuples 1000: Deleted 1000. Elapsed 0/0 sec.
NOTICE: Index onek_unique1: Pages 17; Tuples 1000: Deleted 1000. Elapsed 0/0 sec.
VACUUM
在 SQL92 里没有 VACUUM 语句.
| 上一页 | 首页 | 下一页 |
| UPDATE | 开头 | Applications |