https://blog.csdn.net/ohyoyo2014/article/details/20522493
一、注重日常清理(VACUUM;)。因为有大量的更新(update)"删除(delete)操作,会有大量的空间需要释放。
每日执行一次VACUUM,每周访问量低的时候执行VACUUM FULL;
语法结构;
VACUUM [ FULL | FREEZE ] [ VERBOSE ] [ table ]
VACUUM [ FULL | FREEZE ] [ VERBOSE ] ANALYZE [ table [ (column [, ...] ) ] ]
FULL ------选择"完全"清理,这样可以恢复更多的空间, 但是花的时间更多并且在表上施加了排它锁。
FREEZE ---------选择激进的元组"冻结"。
VERBOSE --------- 为每个表打印一份详细的清理工作报告。
ANALYZE --------- 更新用于优化器的统计信息,以决定执行查询的最有效方法。
table ------- 要清理的表的名称(可以有模式修饰)。缺省时是当前数据库中的所有表。
column ---------要分析的具体的列/字段名称。缺省是所有列/字段。
VACUUM 回收已删除元组占据的存储空间。 在一般的 PostgreSQL 操作里, 那些已经 DELETE 的元组或者被 UPDATE 过后过时的元组是没有从它们所属的表中物理删除的; 在完成 VACUUM 之前它们仍然存在。 因此我们有必须周期地运行 VACUUM, 特别是在常更新的表上,如果没有参数,VACUUM 处理当前数据库里每个表, 如果有参数,VACUUM 只处理那个表,简单的 VACUUM (没有FULL) 只是简单地回收空间并且令其可以再次使用;
VACUUM命令的含义为:垃圾收集以及可选地分析一个数据库。VACUUM回收已删除元组占据的存储空间。在一般的 PostgreSQL 操作里, 那些已经 DELETE 的元组或者被 UPDATE 过后过时的元组是没有从它们所属的表中物理删除的; 在完成 VACUUM 之前它们仍然存在。 由于以下几个原因,我们必须周期性运行 PostgreSQL 的 VACUUM 命令∶ 1.恢复那些由已更新的或已删除的行占据的磁盘空间。
例子:
#psql -U pgsql dbname
dbname#VACUUM;
搞定!
二、重建索引(REINDEX)
语法
REINDEX { INDEX | TABLE | DATABASE | SYSTEM } name [ FORCE ]
描述
REINDEX命令用来重建索引。旧的索引将被删除,重新读取索引的父表中的数据来重建索引。REINDEX命令不支持并发创建索引的功能。在下面的情况下,应该重建索引:
· 一个索引中的数据已被破坏,包含非法的数据。软件错误和硬件问题都会导致索引被损坏。
· 索引中包含许多空的或者几乎是空的数据页。应该重建索引,回收物理存储空间。
· 该变了索引的存储参数fillfactor的值,只有重建索引,新的参数值才能完全生效。
· 使用CREATE INDEX CONCURRENTLY命令创建索引时遇到错误,留下一个非法的索引。
例子
(1)重建索引my_index:REINDEX INDEX my_index;
(2)重建表my_table 上的所有索引:REINDEX TABLE my_table;
(3)重建数据库中的所有索引:REINDEX DATABASE broken_db;
#psql -U pgsql dbname
dbname#REINDEX DATABASE dbname;
通过这两个维护,可以及时释放废弃的资源,让数据库轻装运行,速度更快
相关推荐
灵活的冻结脚本,用于管理非工作时间的PostgreSQL数据库清理和冻结。 /scripts/flexible_freeze.py 该脚本旨在用于在已知的慢流量期间在数据库上运行VACUUM FREEZE或VACUUM ANALYZE。 设置超时时间,以免超出您的...
postgresql数据库函数逻辑思维导图(持续更新),目前包含exec_simple_query,heap_insert,MVCC相关函数,查询优化subquery_planner,存储管理,分区表,后台进程(检查点相关、清理进程、PostgresMain)
SliceDB是用于捕获和还原PostgreSQL数据库子集的工具。 它还支持清理敏感数据。 关键字:数据库子集,清理,PostgreSQL 基本用法 首先,查询数据库以创建架构文件。 slicedb schema > schema.yml 第二,转储一片...
将Mysql db迁移到Postgresql(按规则) 通过单个命令将当前MySQL数据库迁移到Postgres。 该工具为您提供了将本地MySQL数据库迁移到Postgres的机会,甚至可以修改您当前的数据库结构,名称并获得更好的一致性,从而...
数据库复卷机 database_rewinder是极简主义者的微型超快数据库清洁器。 产品特点 通过DELETE SQL清理表。 没有实施其他策略ATM 支持多个数据库 运行速度极快 :dashing_away: 为什么这么快? database_rewinder会...
帮助程序库,使用Knex清理PostgreSQL,MySQL或SQLite3数据库表。 非常适合集成测试。 安装 npm install knex-cleaner 用法 var knexCleaner = require ( 'knex-cleaner' ) ; var knex = require ( 'knex' ) ( { ...
一组用于数据库分析和管理的有用小脚本,由我们的 PostgreSQL Experts 团队创建。 膨胀 估计表和索引膨胀的查询。 index_bloat_check.sql 彻底检查索引膨胀检查。 列出可能膨胀的索引并估计膨胀量。 需要 ...
介绍这个项目的主要目标是使编写基于PostgreSQL数据库的Spring支持的集成测试变得更加容易。 该库负责根据测试配置为每个测试类或测试方法创建和管理隔离的嵌入式数据库。产品特点支持Spring和Spring Boot框架支持的...
数据库清理器 Database Cleaner是一组宝石,其中包含用于在Ruby中清洁数据库的策略。 最初的用例是确保测试期间的清洁状态。 每种策略都是少量的代码,但是在使用数据库进行测试的任何ruby应用程序中通常都需要...
graphile-scheduler在PostgreSQL数据库中跟踪其时间表。 在启动时,它将对自上次检查以来应该发生的所有作业进行排队,无论该作业是1分钟之前还是1天之前(最高由您的配置确定)。 它使用PostgreSQL锁定,因此可以...
适用于MySQL,PostgreSQL和SQL Server。 在线尝试在线演示应用程序 从下载Windows,Linux或Mac的应用程序 以或运行Web版本 特征 连接到Microsoft SQL Server,Postgre SQL,MySQL 表数据编辑,带有SQL更改脚本...
使用PostgreSQL数据库配置和Sequel作为ORM生成基于Sinatra的Web应用程序 资产预编译和资产清理的耙任务 安装 gem install sinator 使用Bundler,将以下代码放入您的Gemfile中: gem 'sinator' 如何使用 在没有...
然后,我使用Pandas清理数据,然后将其加载到PostgreSQL数据库中,从而完成了整个ETL过程。 清除数据后,我在Tableau上进行了探索性数据分析,以确定哪些类型的信息可以解释公寓的价格。 最后,我构建了一个仪表板...
资料库该存储库包含三个使用SQL,XML,PostgreSQL,MongoDB,Apache Spark和AWS的数据库项目SQL和PostgreSQL 在这个项目中,我将PostgreSQL数据库用于数据处理任务: 预处理原始数据:我使用python库psycopg2连接到...
运行PostgreSQL数据库 部署JAR组装模块 现在,该项目的所有服务都作为docker容器运行。运行脚本提供以下任务: build_start 。构建整个项目,重新创建ACS和Share docker映像,启动由ACS,Share,ASS和...
LESO数据更新,5-20-15:脚本已更改为使用来自国防后勤局... 要将数据导入 PostgreSQL 数据库: ./import.sh将汇总表生成为 CSV: ./summarize.sh要使用 FIPS 代码和预先计算的总成本列生成数据库就绪数据文件和每个状
每三年左右也需要升级PostgreSQL数据库。 该数据库预计最多可容纳一千或两个记录。 预期每小时执行很少的事务。 数据很少更改。 读取将比写入更多。 数据逻辑中很少有关系。 查询将很简单(最常见:获取所有记录),...
特征完全的一般帐户跟踪投资账户追踪资产账户追踪债务账户追踪投资目标预测时间账户和全局统计编辑/删除交易编辑/删除帐户进行中代码清理/注释允许用户更改密码为统计数据实现缓存安装为了运行弹道,请按照下列步骤...
该项目需要PostgreSQL数据库才能运行。 小野 还需要服务来运行项目(测试不需要)。 跑步 出于测试目的, local文件夹中提供了示例文件。 请注意,该应用程序将在没有Keycloak的情况下以dev模式启动。 从本地目录中...
Phresh清理-使用FastAPI教程系列启动和运行 此存储库包含用于为伪造的清洁市场“ Phresh”创建Fast... 第2部分:使用dockerized FastAPI应用程序配置postgresql数据库 :check_mark_button: :locomotive: 第3部分:将