问题标签 [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.
postgresql - 数据库表大小没有按比例减少
我正在使用 PostgreSQL 8.4.13 数据库。
最近我在一个表中有大约 8650 万条记录。我几乎全部删除了——只剩下 5000 条记录。我跑了
和
删除行后。但是我仍然看到该表正在占用很大的磁盘空间:
此外,剩余行的索引值仍然很高——比如在百万范围内。我想在清理和重新索引之后,剩余行的索引将从 1 开始。
我阅读了文档,很明显我对重新索引的理解是有偏差的。
但尽管如此,我的意图是在删除操作后减小表大小并降低索引值,以便SELECT
从表中读取操作()不会花费那么长时间 - 目前我需要大约 40 秒才能从我的桌子。
更新
谢谢欧文。我已经更正了 pg 版本号。
为我工作。我在这里有一个后续问题:
删除大部分大表后重新启动现有行的主键数
url - 亚马逊产品 API:亚马逊销售后重定向到 URL/发送参数(回发)
使用亚马逊员工我宣传一个链接。销售完成后如何取回参数?(cid)
我想在转换后重定向到一个 url,或者将一个参数返回到我的网站,这样我就可以看到哪些点击转换了。我怎么做?我在亚马逊的 Associate (affiliate) 计划中到处找,但什么也找不到。我可以在那里做吗?
或者我可能需要使用亚马逊的产品广告 API?我在那里找不到任何关于这方面的信息,只是关于展示产品,而不是关于销售后会发生什么。我必须能够记录下来。我找到了vacuum
Rails 的 gem,但它不在示例中。
任何想法如何做到这一点?
sqlite - Phonegap Sqlite 真空吸尘器
我们有一个使用 VSNomad(通过 Phonegap)和 Sqlite 本地数据库的离线平板电脑应用程序。我注意到的一件事是,当我们在 iPad 上删除表中的所有数据并删除表(执行“应用程序重置”)时,它并没有反映出空间已被打开。
我遇到过用于 Sqlite 的“VACUUM”命令,但是我不确定如何/是否可以将其与我们的实现一起使用。当我尝试运行它时,我收到一条错误消息,提示无法在事务中运行。
以下是我们如何实施 http://docs.phonegap.com/en/2.7.0/cordova_storage_storage.md.html#Storage的示例
有可能像这样运行真空吗?
postgresql - 如何回收 PostgreSQL 中未使用的 LOB 占用的空间
我有一个在 PostgreSQL 8.3 上运行的中型数据库集群。
数据库将数字文件(图像)存储为 LOB。
数据库集群中有相当多的活动,大量内容以持续的方式创建和删除。
即使承载 OID 的应用程序表由应用程序正确维护(当删除图像文件时),数据库集群的大小也会持续增长。
自动吸尘处于活动状态,因此不应发生这种情况。
postgresql-8.4 - 对于具有 hstore 列的表,POSTGRESQL VACUUM ANALYZE 失败
在具有 hstore 列的表上运行 VACUUM ANALYZE 时,出现以下错误:
我可以在没有比较功能的情况下强制它完成吗?如果没有,我该如何定义?
sqlite - 如何清理sqlite数据库?
我想知道如何清理 sqlite 数据库。我从命令提示符尝试了整个数据库的语法 MANUAL VACUUM 命令:
但它给出的错误如下:
还有自动真空:
并尝试了一个特定的表:
但没有结果。
postgresql - postgres 真空并没有改变臃肿
以下是对 heroku 管理的 postgresql 9.2 数据库中的所有表运行手动清理操作之前和之后最臃肿的表。如您所见,变化不大,甚至增加了一些浪费……
可能是什么原因?这是正常行为吗?
前:
后:
django - 在 celery 任务中运行 postgres VACUUM
我有 celery 定期任务,需要在每次运行后运行 postgres VACUUM 查询,否则此任务会占用大量硬盘空间。
最后我尝试在任务中运行 VACUUM,但出现错误:
我尝试在调用 VACUUM 之前应用@transaction.commit_manually
装饰器并执行此操作,但出现此错误:transaction.commit()
有没有办法在芹菜任务中做 VACUUM ?或者以某种方式禁用任务事务逻辑?
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。
sqlite - 通过应用程序级重试避免sqlite Vacuum“数据库被锁定”
我正在使用一个简单的 sqlite DB 作为进程之间的持久性消息队列机制。为了在超过一定限制后减小文件大小,我想使用“vacuum”命令。一般来说,这一切都很好,只是我在吸尘时时不时地得到一个“数据库被锁定”的错误。
在阅读了网络上的各种资源后,我了解到在 sqlite 级别上我无能为力。
但是,除了附带问题“为什么会这样?使用常规的 busyHandler 机制重试获取所需的锁会有什么问题?” 我想出了在应用程序级别实现完全相同的busyHandler机制的想法。
现在的基本问题是:这有什么问题吗?
很多谢谢!