RamDisk 上的 PostgreSQL:work_mem 的大小等?

Posted

技术标签:

【中文标题】RamDisk 上的 PostgreSQL:work_mem 的大小等?【英文标题】:PostgreSQL on RamDisk: Size of work_mem etc.? 【发布时间】:2011-02-07 17:59:45 【问题描述】:

我正在尝试在 Windows 的 ramdisk 上运行 PostgreSQL。我这样做的方法是简单地将数据目录放在 ramdisk 上。

在没有进行任何特定基准测试的情况下,性能似乎非常出色,并且仅受 CPU 限制。我的问题是 work_mem、shared_buffers 等的最佳值是多少?

即使数据库在 ram 中,运行我的许多查询也需要半分钟以上。因此,我想知道在表上创建索引是否有意义。当然,索引需要保留在 ram 中。我应该提到我正在将 PostgreSQL 用于数据仓库(虽然很小)。

编辑:我应该提到我正在使用来自 DataRam.com 的 RamDisk 实用程序。当我配置 ramdisk 时,它只会偶尔给我一个蓝屏,而不是在它建立时。我认为这是怀旧的眼睛糖果。 ;)

【问题讨论】:

【参考方案1】:

我肯定会创建索引。引擎可以使用包含的信息进行各种优化,它应该会大大提高你的性能。 RamDisk 解决了最坏的表扫描类型的情况,但这并不一定意味着表扫描比正确查找更快。

【讨论】:

【参考方案2】:

是的,使用索引,但 work_mem 仍然取决于机器本身的大小。当然,您想要高 work_mem 的原因之一是您不必敲击磁盘来进行磁带排序。在 ramdisk 上,这几乎没有那么危险。请记住,您在 ram 磁盘上没有数据完整性。

【讨论】:

那么,我可以将您的答案解释为我可以将 work_mem 设置为 0,因为击中 ramdisk 并不重要。数据完整性是指我可以在重新启动时丢失所有数据,或者 ramdisk 上的数据在某些情况下实际上可能是错误的,最后的解释对我来说是一个问题。 我知道这是一个老问题,但不会有一些进程因为 work_mem 太少而崩溃吗?

以上是关于RamDisk 上的 PostgreSQL:work_mem 的大小等?的主要内容,如果未能解决你的问题,请参考以下文章

RamDisk 上的 Android Studio

从 Ramdisk 运行 Android Studio 的问题

内核的ramdisk

C# 代码存在 RamDisk 路径长度问题

从ramdisk根文件系统启动Linux成功

从ramdisk根文件系统启动Linux成功,及使用initramfs启动linux