我想将Postgres用作内存商店。在创建物化视图后,我不希望将其结果写入磁盘但保存在内存中。我有很多内存(> 100GB),不需要使用磁盘。我想知道是否有可能这样做。
答案 0 :(得分:1)
使用ramdisk可能,但 效率低下。您在RAM中至少有两个(通常是三个)数据副本 - ramdisk,OS缓冲区/缓存和PostgreSQL shared_buffers
。
你应该做的是为它分配磁盘空间,但是将Linux的脏写回阈值设置得非常高,在PostgreSQL中关闭fsync,使用unlogged
表,并且基本上让它在非-crashsafe模式几乎完全来自RAM。
让操作系统变得聪明 - 它仍然可以懒散地写入和刷新数据,从而在RAM中腾出更多空间。
如果你觉得你真的需要一个内存数据库,你最好找一个那样设计的工作方式。但真正需要它的情况非常罕见。