问题标签 [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 回答
1280 浏览

performance - 我可以每 1-2 分钟运行一次 PostgreSQL Vacuum 吗?

我正在为即将到来的项目考虑各种支持 MVCC 的数据库,而 PostgreSQL 引起了我的注意。

我的程序的要求涉及大致如下的序列:

  1. 从当前版本的数据库中读取一些信息,修改 80-90% 的数据并在一个或多个事务中将其写回(想象一下在 Conway 的生命游戏中更新网格,其中网格的旧状态和新状态是必须的)。

  2. 提交后等待 1-2 分钟。在此期间,客户端可以针对新数据发出读取。

  3. 重复。

数据库将被限制为 2-4GB。

约 90% 的更改是对现有对象的更新,约 5% 将是新对象,约 5% 将是删除对象。

所以我的问题是,我是否可以合理地每 1-2 分钟运行一次简单的 VACUUM 命令作为步骤 1.5,并让 PostgreSQL 能够跟上每次可能进行的 2-3+GB 的更改?

0 投票
1 回答
1108 浏览

ruby-on-rails - 如何为诸如 Vacuum 之类的 gem 运行示例代码?

我是 Rails 新手,希望建立一个使用亚马逊产品 API 的网站。我习惯于在 PHP 中使用 API,但如果可能的话,我热衷于迁移到 Ruby。

我一直在尝试各种 Amazon 产品 API gem、Ruby/AWS、Amazon-ECS,现在还有 Vacuum。然而,我坚持的一个问题是如何实际使用他们在自述文件中建议的代码。

例如,真空:

https://github.com/hakanensari/vacuum/

它提到了以下代码:

不确定将这段代码放在哪里,我为测试应用程序设置了一个控制器并将其放在那里。但是它在第一行失败了,说没有定义真空(它作为 gem 安装在 gemfile 中,我已经运行了 bundle install)。

我可能正在做一些愚蠢但易于修复的事情,并且非常感谢任何建议。

D

编辑:

感谢 x1a4,下面的代码应该替换上面的配置块:

0 投票
2 回答
832 浏览

postgresql - 错误 (?) PostgreSQL 表的大小

我有一个包含列和约束的表:

(没有主键)。目前有 28 978 112 条记录,但我认为表的大小太大了。

查询结果:

是:

idsensorfragments列上只有一个索引。使用简单的数学,您可以看到一条记录需要 ~66,7 B (?!?!)。谁能解释一下这个数字是从哪里来的?

5 列 = 2 + 2 + 2 + 4 + 4 = 14 字节。我有一个索引,没有主键。每条记录额外的 50B 来自哪里?

PS 表被抽真空、分析和重新索引。

0 投票
1 回答
2626 浏览

python - sqlite 真空与 django

在sqlite中插入和删除大量记录后,sqlite db文件的大小不断增长,有没有办法使用django清理表?

  • 一些让 sqlite 自动清空的设置
  • 或者手动编写自己的 django 命令来清理

更新:

我使用sqlite 数据库浏览器执行以下 SQL:

效果很好,我只想以编程方式进行

0 投票
1 回答
2104 浏览

database - Postgres维护的正确顺序

我有一张大表,因为很多行经常更新,所以索引膨胀。我也在删除大量行。

为了恢复磁盘空间,执行以下任务的正确顺序是什么?

  • 真空,将死元组标记为空闲以供数据库重用,不会将空间返回给系统。
  • Vacuum Full,重写表以减少表膨胀,将空间返回给系统。
  • 重新索引,重写索引以减少索引膨胀,将空间返回给系统。
0 投票
1 回答
1358 浏览

ruby-on-rails - Ruby on Rails:如何使用 Gem?(真空亚马逊 API)

我找到了一个我想使用的 Amazon Gem https://github.com/hakanensari/vacuum/

我只使用过深入教程或遵循 RailsCast 的 gem。我正在寻找有关使用我在网上找到的宝石的提示。我将解释我正在执行的步骤,希望有人能给我一些关于在使用新 gem 时我还应该做什么的想法。此外,如果您有关于宝石的良好教程或解释,那也很棒。

我开始检查 Github 上的 Gem,我会指出我注意到的事情。让我知道是否有我遗漏的东西我应该注意。

在 Github 上检查 Gem

  1. 转到示例并查看“examples/product_advertising/basic_lookup.rb”
  2. 按照所需的文件,检查“examples/product_advertising/shared.rb”
  3. 注意,我需要安装“pry”
  4. 请注意,示例在“lib”文件夹中展开
  5. 查看“credentials.yml”
  6. 请注意,“@req”被实例化为一个新的 Vacuum 对象。
  7. 然后回到 basic_lookup.rb,它看起来像是在分配查找值,然后将响应绑定到某种“pry”视图。

接下来,我将尝试在我自己的项目中实现这些示例。就文件而言,这就是我不确定该怎么做的地方。

尝试实现示例

  1. 安装真空宝石

    gem install vacuum

  2. 安装撬宝石

    gem install pry

  3. 将“shared.rb”和“credentials.yml”添加到我的“app/controllers”目录
  4. 将“credentials.yml”中的信息替换为我的信息
  5. 尝试将“basic_lookup.rb”中的信息复制到现有控制器中

    /li>
  6. 创建路线

    match '/test' => 'products#amazon'

  7. 转到测试页面并收到以下错误

    undefined method 'look_up' for nil:NilClass

我想指出,此时我还没有添加 lib 文件夹。

问题

  • 我喜欢将 credentials.yml 分离出来,当我想将它添加到我的项目时,我应该在哪里保存该文件?
  • 我喜欢 shared.rb 文件,我应该把它放在控制器文件夹中吗?
  • 为什么它引用“shared.rb”中的“lib”文件夹?我需要将该目录复制到我的项目中吗?

我很感激你留下来阅读所有这些。我仍在尝试使用宝石,所以任何帮助或提示都很棒。真的,我只是想弄清楚,我如何找到任何宝石并开始适当地使用它。

感谢你给与我的帮助!

0 投票
2 回答
3605 浏览

ios - 在 Core Data SQLite 持久存储上使用 Sqlite3 VACUUM 命令

在我们的应用程序中,我们正在通过网络/电子邮件实现部分 Core Data SQLite 数据库的共享。为了保持文件较小,我实现了以下方法来缩小 Core Data 数据库。

问题:上面的代码确实缩小了数据库。但苹果表示,Core Data 的实施细节随时可能发生变化。你认为我在可预见的未来使用这种方法会安全吗?或者有没有其他更好的解决方案?

0 投票
1 回答
4792 浏览

plpgsql - postgresql 真空分析许多表

我有一个由大约 200 个子表组成的中型表(大约 150 亿行)(即每个子表继承母表,并且有约束 CHECKS 来优化分区)。

加载每个表的 plpgsql 代码也会在每个子表上生成索引,但不幸的是(因为它是一个函数),它也不能vacuum analyze subtable;为它刚刚加载和索引的子表执行 a。

因此,vacuum analyze在整个数据库的下一个完成之前,母表上的所有查询都很糟糕并且不使用索引(正如解释所揭示的那样)。

请注意,这是 PostgreSQL 8.2.14 的全部内容。

问题

  1. 有没有办法让 plpgsql 函数说,请在上面加糖,结束事务块并执行vacuum analyze subtable
  2. 有没有办法使用一些通配符()一次清理/分析许多表vacuum analyze schema.subtables*
  3. 或者,是否可以只真空/分析一个模式?
  4. 有没有其他方法可以从 postgresql 中以编程方式清理/分析 200 个子表(是的,我可以将所有子表的名称、折腾和季节转储到 psql 脚本中,然后执行那个,但它有点难看)。
0 投票
1 回答
1381 浏览

database - VACUUM 数据库和 WAL 模式

我有 SQLite 数据库WAL模式。每次我VACUUM对数据库执行 a 时,日志模式都会在DELETE我下次重新连接时恢复。

例如:

在 SQLite 3.7 中观察到的行为,但似乎在 3.8 中已修复。

0 投票
0 回答
108 浏览

haskell - 在win7 64位上安装vacuum-cairo

我对 Haskell 比较陌生,以前从未安装过软件包,我不知道如何解决这个问题。所以这就是我所做的: - 我安装了 Haskell 平台 - 我试图运行“cabal install Vacuum-cairo”

这就是我得到的(最后几行似乎很重要):

我也尝试了一些我在互联网上阅读的东西,但没有任何效果,我真的没有找到那么多。有人可以帮我解决这个问题吗?我真的很想使用那个包来更好地了解我在 Haskell 中所做的事情:)