我想将 Postgres 用作内存存储。创建实体化 View 后,我不希望将其结果写入磁盘,而是将其保存在内存中。我有很多内存(>100GB),不需要使用磁盘。我想知道是否可以这样做。
最佳答案
使用 ramdisk 是可能的,但它真的效率低下。您将在 RAM 中至少拥有两个(通常是三个)数据副本 - 虚拟磁盘、操作系统缓冲区/缓存和 PostgreSQL 的 shared_buffers
。
你应该做的是无论如何为它分配磁盘空间,但是将 Linux 的脏写回阈值设置得非常高,在 PostgreSQL 中关闭 fsync,使用 unlogged
表,并且基本上让它在非 -崩溃安全模式几乎完全来自 RAM。
让操作系统对此变得聪明——它仍然可以延迟写入和刷新数据,从而在 RAM 中腾出更多空间。
如果您觉得您确实需要一个内存数据库,那么您最好找一个专为这种方式设计的数据库。但真正需要它的情况很少见。
关于database - 是否可以不将 Postgres 查询的结果写入磁盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22950457/