- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
来自 PostgreSQL(相对)新手的快速问题:
我们运行一个批处理过程,作为其最后一步,删除大部分以前的批处理。
磁盘空间是一个问题,因此我们需要确保 PostgreSQL 自行清理。
除了强制 PostgreSQL 更快地进行垃圾收集之外,在批处理结束时显式调用 VACUUM 与让自动 VACUUM 守护进程处理它之间有什么区别吗?是否有任何理由推荐一种方法与另一种方法?
谢谢!
最佳答案
很久以前只有一个真空,它充满了堵塞。然后 PostgreSQL 的家伙添加了非阻塞真空。但您仍然必须自己安排。
然后一些天才制作了一个守护进程,在表需要时自动为您运行 vacuum。它使用您或我使用的完全相同的 vacuum 命令,但有很多设置,尤其是默认设置,这使得它运行得更慢且干扰更少。这些设置主要用于工作线程(默认 3)、延迟成本(autovac 为 20ms,常规 vac 为 0ms)和 autovacuum 成本延迟限制(-1,即使用系统设置为 200)。
因此,常规 vacuum 非常激进,没有成本延迟,并且会在您的 IO 子系统允许的范围内尽可能快地运行。它基本上与您的常规工作负载竞争 IO 带宽。
通常,您可以根据自己的情况执行以下两项操作之一:
一:使 autovacuum 更具侵略性。通过将 autovacuum_vacuum_cost_delay 从 20 降低到 2 到 5 范围内的某个值,它会运行得更快,但仍然不会妨碍太多。
二:用手定期吸尘。由于默认情况下常规吸尘器没有 cost_delay,这将是最快的,但也是最具破坏性的。
您可以根据使用模式等做出决定。
关于Postgresql 显式 VACUUM 与自动 VACUUM : Differences? 建议?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48153385/
来自 PostgreSQL(相对)新手的快速问题: 我们运行一个批处理过程,作为其最后一步,删除大部分以前的批处理。 磁盘空间是一个问题,因此我们需要确保 PostgreSQL 自行清理。 除了强制
我有一个: VACUUM cannot run inside a transaction block Redshift 中的 SQLWorkbenchJ 出现错误,但我已经提交了在此之前的所有事务。
SQLite Vacuum VACUUM 命令通过复制主数据库中的内容到一个临时数据库文件,然后清空主数据库,并从副本中重新载入原始的数据库文件。这消除了空闲页,把表中的数据排列为连续的,另外会清理
我有一个 android 应用程序,它涉及登录应用程序并执行许多 CRUD 操作。当用户第一次登录时,如果有任何可供该用户下载的数据,它会快速记录他/她。但是后来再次重新登录时,过程很慢,有时需要20
我目前正在清理一个具有 2 个索引和 2.5 亿个事件行以及大约同样多(或更多)的死行的表。我从我的客户端计算机(笔记本电脑)向我的服务器发出命令 VACCUM FULL ANALYZE。在过去的 3
我使用 PL/pgSQL 编写了一个脚本,我在 pgAdmin III 中运行。该脚本删除现有的数据库内容,然后为所需的测试场景(通常是各种类型的负载测试)添加一堆“示例”数据。加载数据后,我想“真空
我有一个移动应用程序同步过程。事务对数据库做了很多修改。由于这是在移动设备上完成的,因此我需要发出 VACUUM 来压缩数据库。 我想知道什么时候应该发出 VACUUM 在交易中,作为最终声明 还是在
databaseInstance.execSQL("PRAGMA auto_vacuum = FULL"); 目前我在创建数据库之后和创建数据库表之前使用它。我用数据库做了一些事务,所有这些数据的大小
如何为我的应用程序 VACUUM 我的 RoomDatabase?我围绕 Room 构建了我的整个应用程序,在某个时候,一张大 table 经常被删除,然后又被填满。 我试图用查询创建一个额外的 DA
我需要在执行VACUUM ANALYZE 后释放存储空间。我知道有 VACUUM FULL 但问题是,它锁定了可能导致问题的表(如果有正在进行的事务)。 有没有其他方法可以释放空间给操作系统? 感谢您
我刚刚在 Postgres 表上运行 Vacuum 以尝试恢复磁盘空间,但结果是所有磁盘空间都已被占用。 Vacuum crete 日志文件或事务日志是否可以删除? 最佳答案 我假设您执行了 VACU
来自 PostgreSQL 10.4 手册中关于完全真空的内容: Note that they also temporarily use extra disk space approximately
我的数据库中有一张表占用了 161GB 的硬盘空间。 200Gb 硬盘只剩下 5GB 可用空间。 以下命令显示我的表占用了 161GB 硬盘空间, 选择 pg_size_pretty(pg_total
我们有一个使用 PostgreSQL 数据库服务器的产品,该产品部署在数百个客户端上。他们中的一些人多年来收集了数十 GB 的数据。因此,在下一个版本中,我们将引入自动清理程序,该程序将在夜间批处理作
正常情况下,我正在使用我的应用程序,超过 30000 次下载没有问题。但我看到此错误开始出现在 android 开发人员控制台(崩溃和 ANRS) 中。 by app version 3.1.1 1
我在生产中继承了一个 PostgreSQL 数据库,其中有一个大小约为 250 GB 的表。它只有大约一万行事件行,我估计不超过 20 MB。 该表增长到如此大小是因为 AUTOVACUUM已经关闭了
使用此代码: var db = google.gears.factory.create('beta.database'); db.open('cominar'); db.execute('CREATE
是否可以在短时间内运行 PostgreSQL 11 的 VACUUM FULL 然后获得一些好处?还是中途取消会导致所有进度丢失? 我读过有关 pg_repack ( https://aws.amaz
是否可以在短时间内运行 PostgreSQL 11 的 VACUUM FULL 然后获得一些好处?还是中途取消会导致所有进度丢失? 我读过有关 pg_repack ( https://aws.amaz
有一个表,它有 200 行。但是显示的事件元组数量不止于此(大约 60K)。 select count(*) from subscriber_offset_manager; count ------
我是一名优秀的程序员,十分优秀!