是否有可能不将Postgres查询的结果写入磁盘?

时间:2014-04-09 00:00:37

标签: database postgresql memory

我想将Postgres用作内存商店。在创建物化视图后,我不希望将其结果写入磁盘但保存在内存中。我有很多内存(> 100GB),不需要使用磁盘。我想知道是否有可能这样做。

找到解决方案: Keeping postgres entirely in memory

1 个答案:

答案 0 :(得分:1)

使用ramdisk可能,但 效率低下。您在RAM中至少有两个(通常是三个)数据副本 - ramdisk,OS缓冲区/缓存和PostgreSQL shared_buffers

你应该做的是为它分配磁盘空间,但是将Linux的脏写回阈值设置得非常高,在PostgreSQL中关闭fsync,使用unlogged表,并且基本上让它在非-crashsafe模式几乎完全来自RAM。

让操作系统变得聪明 - 它仍然可以懒散地写入和刷新数据,从而在RAM中腾出更多空间。

如果你觉得你真的需要一个内存数据库,你最好找一个那样设计的工作方式。但真正需要它的情况非常罕见。