我正在尝试在windows的内存磁盘上运行PostgreSQL。我这样做的方法是简单地将数据目录放在内存磁盘上。
在没有进行任何特定基准测试的情况下,性能似乎非常出色,只有CPU限制。我的问题是work_mem、shared_buffers等的最佳值是什么?
即使数据库在ram中,也要花费半分钟以上的时间来运行我的许多查询。因此,我想知道在表上创建索引是否有意义。当然,索引需要留在ram中。值得一提的是,我正在使用PostgreSQL作为数据仓库(虽然很小)。
编辑:我应该提一下,我使用的是DataRam.com的RamDisk实用程序。当我配置ramdisk时,它只会偶尔给我一个蓝屏,而不是在它建立的时候。我认为这是怀旧的eyecandy;)
发布于 2011-02-08 07:49:35
我肯定会创建索引。引擎可以使用包含的信息进行各种优化,它应该会大大提高您的性能。RamDisk解决了最坏情况表扫描类型的情况,但这并不意味着表扫描比正确查找更快。
发布于 2011-02-08 14:39:05
是的,使用索引,但work_mem仍然取决于机器本身的大小。当然,您需要高work_mem的原因之一是这样您就不会在进行磁带排序时命中磁盘。在内存磁盘上,这几乎没有那么危险。只需记住,您在ram磁盘上没有数据完整性。
https://stackoverflow.com/questions/4924712
复制相似问题