- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我有下表时:
CREATE TABLE test
(
"id" integer NOT NULL,
"myval" text NOT NULL,
CONSTRAINT "test-id-pkey" PRIMARY KEY ("id")
)
当进行大量如下查询时:
UPDATE "test" set "myval" = "myval" || 'foobar' where "id" = 12345
然后 myval 行会随着时间变得越来越大。postgresql 会做什么?它将从哪里获得空间?
我能否避免 postgresql 需要多次查找才能读取特定的 myval 列?
postgresql 会自动执行此操作吗?
我知道通常我应该尝试更多地规范化数据。但是我需要一次搜索就可以读取值。每次更新(添加数据)时,Myval 都会增加大约 20 个字节。有些专栏会有 1-2 次更新,大约有 1000 次更新。通常我只会使用一个新行而不是更新。但随后选择变得越来越慢。所以我想到了反规范化。
最佳答案
更改表的 FILLFACTOR 以便为将来的更新创建空间。这也可以是热更新,因为文本字段没有索引,以加快更新速度并降低 autovacuum 开销,因为热更新使用微真空。 CREATE TABLE 语句有一些关于 FILLFACTOR 的信息.
ALTER TABLE test SET (fillfactor = 70);
-- do a table rebuild to blow some space in your current table:
VACUUM FULL ANALYZE test;
-- start testing
值 70 不是完美的设置,它取决于您的独特情况。也许您觉得 90 岁没问题,也可能是 40 岁或其他。
关于postgresql - 如何通过频繁更新避免碎片化的数据库存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5301117/
当使用 FFmpeg 控制台将 RTSP 流保存到分段 MP4 文件时,我注意到存在少量内存泄漏。 它每小时泄漏大约 3-4 MB(当每帧是一个片段和 30 fps 时)。 使用了以下命令: ffmp
我尝试了文档 http://doc.scrapy.org/en/stable/topics/practices.html 中的示例,但第二次运行时会出现错误ReactorNotRestartable。
I published my application to the Play Store as open beta. I don't get any error when I run it wi
我是一名优秀的程序员,十分优秀!