2011-02-07 43 views
1

我正在试验在Windows上的虚拟硬盘上运行PostgreSQL。我这样做的方式是简单地将数据目录放在ramdisk上。RamDisk上的PostgreSQL:work_mem等的大小?

没有做任何具体的基准,性能似乎是宏伟的,只有CPU绑定。我的问题是,像work_mem,shared_buffers等的最佳值是什么?

即使数据库在ram中,运行我的许多查询也需要半分多钟。因此,我想知道它是否会在表格上创建索引。当然,这些指数需要保持在内存中。我应该提到,我正在使用PostgreSQL作为数据仓库(尽管如此)。

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

回答

1

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

1

是的,使用索引但work_mem仍然取决于机器本身的大小。当然,你想要一个高work_mem的原因之一就是你不用打磁盘来做磁带排序。在一个ramdisk上,这并不是那么危险。请记住,您在RAM磁盘上没有数据完整性。

+0

所以,我可以解释你的答案,因为我可以将work_mem设置为0,因为点击ramdisk并不重要。通过数据完整性,您的意思是我可以在重新启动时丢失所有数据,或者在某些情况下虚拟磁盘上的数据可能实际上是错误的,最后的解释会成为我的担忧。 – David 2011-02-08 08:51:36