问题标签 [vacuum]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
15126 浏览

postgresql - 数据库表大小没有按比例减少

我正在使用 PostgreSQL 8.4.13 数据库。
最近我在一个表中有大约 8650 万条记录。我几乎全部删除了——只剩下 5000 条记录。我跑了

删除行后。但是我仍然看到该表正在占用很大的磁盘空间:

此外,剩余行的索引值仍然很高——比如在百万范围内。我想在清理和重新索引之后,剩余行的索引将从 1 开始。

我阅读了文档,很明显我对重新索引的理解是有偏差的。

但尽管如此,我的意图是在删除操作后减小表大小并降低索引值,以便SELECT从表中读取操作()不会花费那么长时间 - 目前我需要大约 40 秒才能从我的桌子。

更新

谢谢欧文。我已经更正了 pg 版本号。

为我工作。我在这里有一个后续问题:
删除大部分大表后重新启动现有行的主键数

0 投票
1 回答
1056 浏览

url - 亚马逊产品 API:亚马逊销售后重定向到 URL/发送参数(回发)

使用亚马逊员工我宣传一个链接。销售完成后如何取回参数?(cid)

我想在转换后重定向到一个 url,或者将一个参数返回到我的网站,这样我就可以看到哪些点击转换了。我怎么做?我在亚马逊的 Associate (affiliate) 计划中到处找,但什么也找不到。我可以在那里做吗?

或者我可能需要使用亚马逊的产品广告 API?我在那里找不到任何关于这方面的信息,只是关于展示产品,而不是关于销售会发生什么。我必须能够记录下来。我找到了vacuumRails 的 gem,但它不在示例中。

任何想法如何做到这一点?

0 投票
1 回答
801 浏览

sqlite - Phonegap Sqlite 真空吸尘器

我们有一个使用 VSNomad(通过 Phonegap)和 Sqlite 本地数据库的离线平板电脑应用程序。我注意到的一件事是,当我们在 iPad 上删除表中的所有数据并删除表(执行“应用程序重置”)时,它并没有反映出空间已被打开。

我遇到过用于 Sqlite 的“VACUUM”命令,但是我不确定如何/是否可以将其与我们的实现一起使用。当我尝试运行它时,我收到一条错误消息,提示无法在事务中运行。

以下是我们如何实施 http://docs.phonegap.com/en/2.7.0/cordova_storage_storage.md.html#Storage的示例

有可能像这样运行真空吗?

0 投票
1 回答
3623 浏览

postgresql - 如何回收 PostgreSQL 中未使用的 LOB 占用的空间

我有一个在 PostgreSQL 8.3 上运行的中型数据库集群。

数据库将数字文件(图像)存储为 LOB。

数据库集群中有相当多的活动,大量内容以持续的方式创建和删除。

即使承载 OID 的应用程序表由应用程序正确维护(当删除图像文件时),数据库集群的大小也会持续增长。

自动吸尘处于活动状态,因此不应发生这种情况。

0 投票
0 回答
168 浏览

postgresql-8.4 - 对于具有 hstore 列的表,POSTGRESQL VACUUM ANALYZE 失败

在具有 hstore 列的表上运行 VACUUM ANALYZE 时,出现以下错误:

我可以在没有比较功能的情况下强制它完成吗?如果没有,我该如何定义?

0 投票
3 回答
43560 浏览

sqlite - 如何清理sqlite数据库?

我想知道如何清理 sqlite 数据库。我从命令提示符尝试了整个数据库的语法 MANUAL VACUUM 命令:

但它给出的错误如下:

还有自动真空:

并尝试了一个特定的表:

但没有结果。

0 投票
2 回答
1194 浏览

postgresql - postgres 真空并没有改变臃肿

以下是对 heroku 管理的 postgresql 9.2 数据库中的所有表运行手动清理操作之前和之后最臃肿的表。如您所见,变化不大,甚至增加了一些浪费……
可能是什么原因?这是正常行为吗?

前:

后:

0 投票
1 回答
754 浏览

django - 在 celery 任务中运行 postgres VACUUM

我有 celery 定期任务,需要在每次运行后运行 postgres VACUUM 查询,否则此任务会占用大量硬盘空间。

最后我尝试在任务中运行 VACUUM,但出现错误:

我尝试在调用 VACUUM 之前应用@transaction.commit_manually装饰器并执行此操作,但出现此错误:transaction.commit()

有没有办法在芹菜任务中做 VACUUM ?或者以某种方式禁用任务事务逻辑?

0 投票
1 回答
66 浏览

postgresql - 索引或 autovacuum 是否会改变查询结果的行为?

我对特定查询的结果有疑问。

SELECT final_copy,num_chars FROM table1 t1,table2 t2

哪里 t1.numid = t2.id

使用此查询获取两行,

final_copy | num_chars

---------+------

这里 final_copy 1 是插入的最新记录。此查询在循环中运行,并且始终在第一行中始终返回 final_copy 为 1 的记录。如您所见,查询没有使用任何“order by”。

但是现在查询结果变得不一致,即没有根据最后插入日期返回行。

我的疑问是在清理或重新索引时是否有可能改变查询结果的行为。上周我对这些表进行了重新索引和清理。这会改变结果的行为吗?

我的数据库是 postgresql 版本 7.4.3。

0 投票
2 回答
1607 浏览

sqlite - 通过应用程序级重试避免sqlite Vacuum“数据库被锁定”

我正在使用一个简单的 sqlite DB 作为进程之间的持久性消息队列机制。为了在超过一定限制后减小文件大小,我想使用“vacuum”命令。一般来说,这一切都很好,只是我在吸尘时时不时地得到一个“数据库被锁定”的错误。

在阅读了网络上的各种资源后,我了解到在 sqlite 级别上我无能为力。

但是,除了附带问题“为什么会这样?使用常规的 busyHandler 机制重试获取所需的锁会有什么问题?” 我想出了在应用程序级别实现完全相同的busyHandler机制的想法。

现在的基本问题是:这有什么问题吗?

很多谢谢!