VACUUM - 垃圾收集以及可选地分析一个数据库
SYNOPSIS
- VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ table ]
- VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] ANALYZE [ table [ (column [, ...] ) ] ]
DESCRIPTION 描述
VACUUM 回收已删除元组占据的存储空间。 在一般的 PostgreSQL 操作里, 那些已经 DELETE 的元组或者被 UPDATE 过后过时的元组是没有从它们所属的表中物理删除的; 在完成 VACUUM 之前它们仍然存在。 因此我们有必须周期地运行 VACUUM, 特别是在常更新的表上。
如果没有参数,VACUUM 处理当前数据库里每个表, 如果有参数,VACUUM 只处理那个表。
VACUUM ANALYZE 先执行一个 VACUUM 然后是给每个选定的表执行一个 ANALYZE。
对于日常维护脚本而言,这是一个很方便的组合。参阅 ANALYZE [analyze(7)] 获取更多有关其处理的细节。
简单的 VACUUM (没有FULL) 只是简单地回收空间并且令其可以再次使用。这种形式的命令可以和对表的普通读写并行操作, 因为没有请求排他锁。VACUUM FULL 执行更广泛的处理,包括跨块移动元组,以便把表压缩到最少的磁盘块数目里。 这种形式要慢许多并且在处理的时候需要在表上施加一个排它锁。
FREEZE 是一种特殊用途的选项,它导致元组尽可能快地标记为"冻结(frozen)",
而不是等到它们已经相当老的时候才标记。如果在同一个数据库上没有其它运行着的事务的时候完成这个命令,
那么系统就保证在数据库里的所有元组都是"冻结(frozen)"的, 因此不会有事务 ID 重叠的问题,而和数据库未清理的时间没有关系。 我们不建议把
FREEZE 用做日常用途。我们用它的唯一目地是准备和用户定义的模板数据库联接的时候, 或者是其它完全是只读的, 不会等到日常维护性 VACUUM
操作的数据库。 参阅 Chapter 21 ``Routine Database Maintenance'' 获取细节。
PARAMETERS 参数
- FULL
- 选择"完全"清理,这样可以恢复更多的空间, 但是花的时间更多并且在表上施加了排它锁。
- FREEZE
- 选择激进的元组"冻结"。
- VERBOSE
- 为每个表打印一份详细的清理工作报告。
- ANALYZE
- 更新用于优化器的统计信息,以决定执行查询的最有效方法。
- table
- 要清理的表的名称(可以有模式修饰)。缺省时是当前数据库中的所有表。
- column
- 要分析的具体的列/字段名称。缺省是所有列/字段。
OUTPUTS 输出
如果声明了 VERBOSE,VACUUM 发出过程信息, 以表明当前正在处理那个表。各种有关这些表的统计也会打印出来。
NOTES 注意
我们建议在经常VACUUMM(清理)(至少每晚一次)生产数据库, 以保证不断地删除失效的行。尤其是在增删了大量记录之后, 对受影响的表执行 VACUUM ANALYZE 命令是一个很好的习惯。这样做将更新系统目录为最近的更改,并且允许 PostgreSQL 查询优化器在规划用户查询时有更好的选择。
我们不建议日常使用 FULL 选项,但是可以在特殊情况下使用。 一个例子就是在你删除了一个表的大部分行之后,希望从物理上缩小该表以减少磁盘空间占用。VACUUM FULL 通常要比单纯的 VACUUM 收缩更多表的尺寸。
EXAMPLES 例子
下面是一个在 regression (蜕变)数据库里某个表上执行 VACUUM的一个例子:
- regression=# VACUUM VERBOSE ANALYZE onek;
- INFO: vacuuming "public.onek"
- INFO: index "onek_unique1" now contains 1000 tuples in 14 pages
- DETAIL: 3000 index tuples were removed.
- 0 index pages have been deleted, 0 are currently reusable.
- CPU 0.01s/0.08u sec elapsed 0.18 sec.
- INFO: index "onek_unique2" now contains 1000 tuples in 16 pages
- DETAIL: 3000 index tuples were removed.
- 0 index pages have been deleted, 0 are currently reusable.
- CPU 0.00s/0.07u sec elapsed 0.23 sec.
- INFO: index "onek_hundred" now contains 1000 tuples in 13 pages
- DETAIL: 3000 index tuples were removed.
- 0 index pages have been deleted, 0 are currently reusable.
- CPU 0.01s/0.08u sec elapsed 0.17 sec.
- INFO: index "onek_stringu1" now contains 1000 tuples in 48 pages
- DETAIL: 3000 index tuples were removed.
- 0 index pages have been deleted, 0 are currently reusable.
- CPU 0.01s/0.09u sec elapsed 0.59 sec.
- INFO: "onek": removed 3000 tuples in 108 pages
- DETAIL: CPU 0.01s/0.06u sec elapsed 0.07 sec.
- INFO: "onek": found 3000 removable, 1000 nonremovable tuples in 143 pages
- DETAIL: 0 dead tuples cannot be removed yet.
- There were 0 unused item pointers.
- 0 pages are entirely empty.
- CPU 0.07s/0.39u sec elapsed 1.56 sec.
- INFO: analyzing "public.onek"
- INFO: "onek": 36 pages, 1000 rows sampled, 1000 estimated total rows
- VACUUM
VACUUM - 垃圾收集以及可选地分析一个数据库的更多相关文章
- vacuumdb - 收集垃圾并且分析一个PostgreSQL 数据库
SYNOPSIS vacuumdb [ connection-option...] [ --full | -f ] [ --verbose | -v ] [ --analyze | -z ] [ -- ...
- MySQL创建一个用户,指定一个数据库 授权
Mysql 创建一个用户 hail,密码 hail,指定一个数据库 haildb 给 hail mysql -u root -ppassworduse mysql;insert into user(h ...
- 转:mysql 创建一个用户,指定一个数据库
转自:http://blog.sina.com.cn/s/blog_8c2525390101h0dv.html mysql 创建一个用户 hail,密码 hail,指定一个数据库 haildb 给 h ...
- 11gR2RAC环境DBCA创建一个数据库错误ORA-15055 ORA-15001
11gR2RAC环境DBCA创建一个数据库错误ORA-15055 ORA-15001 象: 在11gR2 GridInfrastructure和Database软件安装完毕之后,运行DBCA创建数据库 ...
- 【译】手动处理Team Foundation Server 2010 数据仓库和分析服务数据库
原贴地址:Manually Processing the Team Foundation Server 2010 Data Warehouse and Analysis Services Databa ...
- 从运维角度来分析mysql数据库优化的一些关键点【转】
概述 一个成熟的数据库架构并不是一开始设计就具备高可用.高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善. 1.数据库表设计 项目立项后,开发部根据产品部需求开发项目,开发工程师工作其中一部分 ...
- [Domino]从嵌入另一个数据库嵌入的Embedded View无法正常显示,提示unable to lauch
发现问题 1. 项目中需要在一个数据库中插入另一个数据库的Embedded View,使用起来十分费劲,在选择数据库的下拉菜单中经常会找不到目标数据库: 2. 在做日文版的时候,从workbench导 ...
- 回首2018 | 分析型数据库AnalyticDB: 不忘初心 砥砺前行
题记 分析型数据库AnalyticDB(下文简称ADB),是阿里巴巴自主研发.唯一经过超大规模以及核心业务验证的PB级实时数据仓库.截止目前,现有外部支撑客户既包括传统的大中型企业和政府机构,也包括众 ...
- 悠星网络基于阿里云分析型数据库PostgreSQL版的数据实践
说到“大数据”,当下这个词很火,各行各业涉及到数据的,目前都在提大数据,提数据仓库,数据挖掘或者机器学习,但同时另外一个热门的名词也很火,那就是“云”.越来越多的企业都在搭建属于自己的云平台,也有一些 ...
随机推荐
- 面向对象&从这里开始我们将不再是纯小白
一.面向对象初识 1.1 面向过程编程vs函数式编程 我们在没有学习函数的时候,写的代码都是面向过程式编程 # 面向过程编程 测量对象的元素的个数. s1 = 'fjdsklafsjda' count ...
- 使用pip安装python模块和包
点击进入幕布视图浏览 https://mubu.com/doc/a8VGCUfqqw 五.使用pip安装python第三方库. pip的常用命令 方式一:在线安装 1.进入命令行 2.敲入pip命令: ...
- Pytest参数传递
import pytest@pytest.fixture()def login_r(open_browser):#调用login时,发现需要先打开浏览器,所以改成先打开浏览器,在登陆 print('输 ...
- 微信小程序の小程序事件流
一.什么是事件? 事件是视图层到逻辑层的通讯方式:事件可以将用户的行为,反馈到逻辑层进行处理:事件可以绑定在组件上,触发事件后,就会执行逻辑层中对应的事件处理函数:事件对象可以携带额外信息. 二.事件 ...
- element-ui中table渲染的快速用法
element-ui中对table数据的渲染有一些模板式的操作,基本按照模板渲染数据即可 基本模板样式如下 <el-table :data="studentData.rows" ...
- 网络基础之TCP/IP协议族
一.TCP/IP协议族 1.什么是协议? 计算机与网络设备相互通信依赖于相同的方法,比如,双方通信基于何种语言等.而把通信所依赖的这一切方法统称为规则,而我们就把这种规则称为协议. 协议中存在各种各样 ...
- js 单行间隙滚动
代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3. ...
- 导出EXCEL(带数据)
/* * 导出EXCEL * @param req * @param resp * @param model * @param info * @return */ @RequestMapping(va ...
- LOJ6485 LJJ 学二项式定理 解题报告
LJJ 学二项式定理 题意 \(T\)组数据,每组给定\(n,s,a_0,a_1,a_2,a_3\),求 \[ \sum_{i=0}^n \binom{n}{i}s^ia_{i\bmod 4} \] ...
- js处理浮点数一点思考
作为一名web开发人员,如果我们做到了涉及到费用加加减减的需求 难免会遇到浮点数的计算,就会遇到浮点数精度误差的问题 假设场景: 1.接口给你的金额单位是分,页面需要展示的金额单位为元. 最后落档金额 ...