database - 是否可以不将 Postgres 查询的结果写入磁盘?

标签 database postgresql memory

我想将 Postgres 用作内存存储。创建实体化 View 后,我不希望将其结果写入磁盘,而是将其保存在内存中。我有很多内存(>100GB),不需要使用磁盘。我想知道是否可以这样做。

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

最佳答案

使用 ramdisk 是可能的,但它真的效率低下。您将在 RAM 中至少拥有两个(通常是三个)数据副本 - 虚拟磁盘、操作系统缓冲区/缓存和 PostgreSQL 的 shared_buffers

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

让操作系统对此变得聪明——它仍然可以延迟写入和刷新数据,从而在 RAM 中腾出更多空间。

如果您觉得您确实需要一个内存数据库,那么您最好找一个专为这种方式设计的数据库。但真正需要它的情况很少见。

关于database - 是否可以不将 Postgres 查询的结果写入磁盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22950457/

相关文章:

mysql - 如何将列添加到表中,以组合其他列中的字符串?

sql - Rails 4 LIKE 查询 - ActiveRecord 添加引号

c - 难以理解 C 中的内存分配

c - C 中的内存分配和传递多个数字

linux - 谁吃了我的内存?

iphone - 应用程序在尝试创建数据库时崩溃

php - MySQL Fetch 在单个查询中连接具有多行的多个表

iphone - 如何在 iphone 中设置数据库和访问数据库

c# - 继承 Newtonsoft JSON.NET 的反序列化无法正常工作

postgresql - 如何使用 postgresql 创建名称中包含日期时间的表