gpt4 book ai didi

postgresql - 插入表 Postgres 9.4 vs 9.1

转载 作者:行者123 更新时间:2023-11-29 12:04:53 25 4
gpt4 key购买 nike

我的团队正在考虑从 9.1 切换到 9.4,作为部分评估,我们想衡量有多少改进是 INSERT INTO TABLE ... 其中有 3- 4 固定长度类型的列,如 INTDOUBLE PRECISION。我们正在使用未批处理的 INSERT 并且表是 loggednot temporaryfsync 设置为 on

Q0:是否有任何理由认为 9.4 在这个特定语句上会比 9.1 更快?

例如基于改进的 WAL 性能:

https://momjian.us/main/writings/pgsql/features.pdf

显然,最好的答案是去检查我们的数据并进行实验,但让我们进行一些推测。

Q1:您是否了解绩效评估?

Q2:WAL 占用了多少INSERT

服务器上的设置(从 9.1 配置文件中逐字复制)

#fsync = off
#synchronous_commit = on
#wal_sync_method = fsync
#full_page_writes = on
#wal_buffers = -1
#wal_writer_delay = 200ms

shared_buffers = 15GB
temp_buffers = 1024MB
work_mem = 1024MB

最佳答案

您提供的链接基于在 Section E.2.3.1.2. General Performance 中找到的信息- 顺便说一句,读起来很棒。根据您建议的测试,我预计不会有任何真正的性能差异,因为您不会利用并行或部分写入(关于 wal 文件)。也就是说,您将来可能会遇到这种情况。此外,9.4(好吧,实际上是 9.1 之后)提供了许多有用的工具和性能增强,在我看来,证明从 9.1 切换到 9.4 是合理的。例如,从 9.2 开始,JSON 现在是一种数据类型,可以进行 Index Only 扫描,并且内存排序提高了 25%。 9.3 引入了物化 View (在 9.4 中具有并发刷新)和可更新的“简单”(定义在 9.4 中略有扩展) View 。在 9.4 中,聚合得到增强并定义了 ALTER SYSTEM(使用 SQL 命令更改配置设置的能力(进入最后读取的 postgresql.auto.config,确保它覆盖 postgresql.config 值))。

值得注意的是,默认日志记录也发生了变化。例如,在创建表时,您不会收到有关隐式索引和序列创建的消息(将日志级别设置为 DEBUG1 以修复 - 虽然当我从 9.1 切换到 9.3 时让我发疯,尤其是在讲座期间)。

关于问题 1,我会运行 TPC基准测试(C 和 VMS 是唯一不免费的)。对于问题 2,这实际上取决于您的 wal 设置,但根据我从您的配置文件中看到的情况,版本性能应该无关紧要。我还会在您的系统上运行 pgtune(下面的链接)以确保您的配置文件在测试前尽可能优化。

与其他评论者一样,只需构建它,看看会发生什么。直接插入可能不会有太大区别,所以我会尝试大型多表连接、大量排序和大量事务模拟(例如,大量插入、更新和删除 - 只需使用 plpgsql简单性)- TCP 查询也可以很好地进行性能测试。

链接:

要查找“新增功能”PostgreSQL wiki 页面,请将版本号添加到以下 URL 的末尾.

您可以在 pgtune.leopard.in.ua 找到 pgtune 的 GUI 版本; pgfoundry 的独立下载时好时坏,因为它似乎总是出现故障。

关于postgresql - 插入表 Postgres 9.4 vs 9.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29794652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com