位置: 编程技术 - 正文

PostgreSQL教程(十四):数据库维护

编辑:rootadmin

推荐整理分享PostgreSQL教程(十四):数据库维护,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

一、恢复磁盘空间:

在PostgreSQL中,使用delete和update语句删除或更新的数据行并没有被实际删除,而只是在旧版本数据行的物理地址上将该行的状态置为已删除或已过期。因此当数据表中的数据变化极为频繁时,那么在一段时间之后该表所占用的空间将会变得很大,然而数据量却可能变化不大。要解决该问题,需要定期对数据变化频繁的数据表执行VACUUM操作。

VACUUM命令存在两种形式,VACUUM和VACUUM FULL,它们之间的区别见如下表格:

无VACUUM VACUUM VACUUM FULL 删除大量数据之后 只是将删除数据的状态置为已删除,该空间不能记录被重新使用。 如果删除的记录位于表的末端,其所占用的空间将会被物理释放并归还操作系统。如果不是末端数据,该命令会将指定表或索引中被删除数据所占用空间重新置为可用状态,那么在今后有新数据插入时,将优先使用该空间,直到所有被重用的空间用完时,再考虑使用新增的磁盘页面。 不论被删除的数据是否处于数据表的末端,这些数据所占用的空间都将被物理的释放并归还于操作系统。之后再有新数据插入时,将分配新的磁盘页面以供使用。 执行效率 由于只是状态置为操作,因此效率较高。 在当前版本的PostgreSQL(v9.1)中,该命令会为指定的表或索引重新生成一个数据文件,并将原有文件中可用的数据导入到新文件中,之后再删除原来的数据文件。因此在导入过程中,要求当前磁盘有更多的空间可用于此操作。由此可见,该命令的执行效率相对较低。 被删除的数据所占用的物理空间是否被重新规划给操作系统。 不会 不会 会 在执行VACUUM命令时,是否可以并发执行针对该表的其他操作。 由于该操作是共享锁,因此可以与其他操作并行进行。 由于该操作需要在指定的表上应用排它锁,因此在执行该操作期间,任何基于该表的操作都将被挂起,知道该操作完成。 推荐使用方式 在进行数据清空是,可以使用truncate操作,因为该操作将会物理的清空数据表,并将其所占用的空间直接归还于操作系统。 为了保证数据表的磁盘页面数量能够保持在一个相对稳定值,可以定期执行该操作,如每天或每周中数据操作相对较少的时段。 考虑到该操作的开销,以及对其他错误的排斥,推荐的方式是,定期监控数据量变化较大的表,只有确认其磁盘页面占有量接近临界值时,才考虑执行一次该操作。即便如此,也需要注意尽量选择数据操作较少的时段来完成该操作。 执行后其它操作的效率 对于查询而言,由于存在大量的磁盘页面碎片,因此效率会逐步降低。 相比于不执行任何VACUUM操作,其效率更高,但是插入的效率会有所降低。 在执行完该操作后,所有基于该表的操作效率都会得到极大的提升。

二、更新规划器统计:

PostgreSQL教程(十四):数据库维护

PostgreSQL查询规划器在选择最优路径时,需要参照相关数据表的统计信息用以为查询生成最合理的规划。这些统计是通过ANALYZE命令获得的,你可以直接调用该命令,或者把它当做VACUUM命令里的一个可选步骤来调用,如VACUUM ANAYLYZE table_name,该命令将会先执行VACUUM再执行ANALYZE。与回收空间(VACUUM)一样,对数据更新频繁的表保持一定频度的ANALYZE,从而使该表的统计信息始终处于相对较新的状态,这样对于基于该表的查询优化将是极为有利的。然而对于更新并不频繁的数据表,则不需要执行该操作。

我们可以为特定的表,甚至是表中特定的字段运行ANALYZE命令,这样我们就可以根据实际情况,只对更新比较频繁的部分信息执行ANALYZE操作,这样不仅可以节省统计信息所占用的空间,也可以提高本次ANALYZE操作的执行效率。这里需要额外说明的是,ANALYZE是一项相当快的操作,即使是在数据量较大的表上也是如此,因为它使用了统计学上的随机采样的方法进行行采样,而不是把每一行数据都读取进来并进行分析。因此,可以考虑定期对整个数据库执行该命令。

事实上,我们甚至可以通过下面的命令来调整指定字段的抽样率,如: 注意:该值的取值范围是0--,其中值越低采样比例就越低,分析结果的准确性也就越低,但是ANALYZE命令执行的速度却更快。如果将该值设置为-1,那么该字段的采样比率将恢复到系统当前默认的采样值,我们可以通过下面的命令获取当前系统的缺省采样值。 从上面的结果可以看出,该数据库的缺省采样值为(%)。

三、VACUUM和ANALYZE的示例:

四、定期重建索引:

在PostgreSQL中,为数据更新频繁的数据表定期重建索引(REINDEX INDEX)是非常有必要的。对于B-Tree索引,只有那些已经完全清空的索引页才会得到重复使用,对于那些仅部分空间可用的索引页将不会得到重用,如果一个页面中大多数索引键值都被删除,只留下很少的一部分,那么该页将不会被释放并重用。在这种极端的情况下,由于每个索引页面的利用率极低,一旦数据量显著增加,将会导致索引文件变得极为庞大,不仅降低了查询效率,而且还存在整个磁盘空间被完全填满的危险。 对于重建后的索引还存在另外一个性能上的优势,因为在新建立的索引上,逻辑上相互连接的页面在物理上往往也是连在一起的,这样可以提高磁盘页面被连续读取的几率,从而提高整个操作的IO效率。见如下示例: #1. 此时已经在该表中插入了大约6万条数据,下面的SQL语句将查询该索引所占用的磁盘空间。 五、观察磁盘使用情况:

1. 查看数据表所占用的磁盘页面数量。 2. 查看指定数据表的索引名称和索引占用的磁盘页面数量。

PostgreSQL教程(十二):角色和权限管理介绍 PostgreSQL是通过角色来管理数据库访问权限的,我们可以将一个角色看成是一个数据库用户,或者一组数据库用户。角色可以拥有数据库对象,如表、索

PostgreSQL教程(十三):数据库管理详解 一、概述:数据库可以被看成是SQL对象(数据库对象)的命名集合,通常而言,每个数据库对象(表、函数等)只属于一个数据库。不过对于部分系统表而言

PostgreSQL教程(十七):客户端命令(1) 零、口令文件:在给出其它PostgreSQL客户端命令之前,我们需要先介绍一下PostgreSQL中的口令文件。之所以在这里提前说明该文件,是因为我们在后面的示

标签: PostgreSQL教程(十四):数据库维护

本文链接地址:https://www.jiuchutong.com/biancheng/319460.html 转载请保留说明!

上一篇:PostgreSQL教程(九):事物隔离介绍

下一篇:PostgreSQL教程(十二):角色和权限管理介绍

  • 政府转让土地使用权
  • 汽车销售和租赁哪个大
  • 买原材料怎么记账
  • 个税申报表中的基本养老保险怎么填
  • 折旧费计算主要有几种方法?分别有什么特点?
  • 差额征收企业指什么企业
  • 个人所得税申报错误如何更正申报
  • 每年税控盘维护费会计分录
  • 小规模纳税人申报时间
  • 个人接受现金捐赠的例子
  • 以前年度影响利润吗
  • 建筑工地加油计入什么科目
  • 5月工资按多少天算
  • 建筑企业小型企业有哪些
  • 企业自建固定资产
  • 其他业务利润怎么算公式
  • 转让房地产未完工项目增值税发票如何处理?
  • 制造费用属于哪一类科目
  • 纳税评估滞纳金会计分录怎么处理?
  • 免抵退说
  • 劳务公司开劳务费发票怎么开,税率是多少
  • 职工向公司借款计入什么科目
  • 外地预缴城市建设2%的依据
  • 软件项目成本包括直接成本和间接成本,一般而言
  • 跨地区经营汇总纳税企业所得税
  • 租赁的厂房改造可以费用化吗
  • 分公司是否需要章程
  • 小规模可以接收专票吗现在
  • 收到一张免税发票能抵税吗
  • 资本公积的借方和贷方各表示什么
  • 鸿蒙工具栏在哪里
  • win10禁用安全杀毒功能
  • 水土保持补偿费是一次性征收吗
  • 企业会计师证是咋回事
  • 华为分享平时可不可以打开
  • 增值税进项发票不够抵扣怎么办
  • frameworkservic.exe是什么进程 有什么作用 frameworkservic进程查询
  • linux小技巧
  • 资本溢价和股本差多少
  • PHP:preg_match()的用法_PCRE正则函数
  • PHP:Memcached::setOptions()的用法_Memcached类
  • 电脑时间同步不了解决方法
  • 银行公户转账需要带什么
  • 辅料分配方法
  • php如何读取文件内容
  • 微笑的树懒哥斯达黎加
  • 房屋所在地的房子怎么查
  • 劳务费怎么做会计分裤
  • php qrcode生成二维码
  • 【机器学习】前置知识:矩阵的表示与定义 | Identity 身份矩阵 | 逆矩阵和转置 | 标量乘法
  • 代开增值税发票需要预交所得税吗
  • 发票网上申领需要多长时间
  • sqlserver数据库定时任务
  • 核定征收的情况包括
  • 小规模纳税人的认定标准是什么
  • 股票分红是怎么扣税的
  • 农民专业合作社法
  • 红冲发票怎么写分录
  • 退回工伤保险的现金流
  • 工程结算直接做主营业务成本
  • 资本公积的意思是
  • 民间非盈利组织使用什么会计准则
  • 银行汇票结算业务
  • 回购股票会导致所有者权益减少吗
  • 盈余公积的会计处理
  • MySQL 5.7 mysql command line client 使用命令详解
  • vmware虚拟机激活码
  • freenas11.2安装教程
  • 蓝屏 win7
  • hyper怎么用
  • nginx文件服务器
  • mscorsvw.exe是什么进程
  • 如何使用蓝牙耳机
  • js中用var定义变量的格式
  • U3DPlayer UnityWebPlayer动态改变src
  • ug输入代码
  • unity常用api
  • 个体办税控盘需要什么材料
  • 国税局黑龙江省
  • 江西鹰潭潭花酒60度
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设