【问题标题】:Keeping postgres entirely in memory将 postgres 完全保存在内存中
【发布时间】:2013-07-19 00:10:37
【问题描述】:

我正在运行各种在数据库中花费大量时间的测试。

我想把它全部保存在内存中,让它不接触数据库,希望这会加快速度。就像使用 sqlite3 的内存选项一样。我不需要持久性/持久性/诸如此类,测试后所有内容都立即丢弃。

这可能吗?我尝试调整我的 postgres 内存相关变量(如下面的解决方案),但这似乎不会影响它执行的数据库写入次数,而且我找不到任何看起来像“内存”选项的东西.

https://dba.stackexchange.com/questions/18484/tuning-postgresql-for-large-amounts-of-ram

【问题讨论】:

  • 如果不写入磁盘并且实际等待它完成,就不可能实现durability
  • @branko 这很有道理。在这种情况下,我不需要持久性。
  • 如果不需要持久化,还需要数据库做什么?
  • @branko 我只需要它在测试期间持续存在,在内存中:)
  • 你不需要数据库。

标签: postgresql


【解决方案1】:

我前段时间写了一篇详细的帖子:

Optimise PostgreSQL for fast testing

您可能会发现它信息丰富;它涵盖了使 PostgreSQL 在没有持久性的情况下运行的选项以及对运行测试有用的其他调整。

您实际上不需要内存中的操作。如果 PostgreSQL 设置为不将更改刷新到磁盘,那么在实践中,适合 RAM 的 DB 和不适合 RAM 的 DB 不会发生崩溃。

您应该使用您在生产中使用的相同数据库引擎进行测试。使用 SQLite、Derby、H2 等进行测试,然后在 PostgreSQL 上进行实时部署并没有多大意义……正如任何 Heroku/Rails 用户都可以从经验中告诉你的那样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-16
    相关资源
    最近更新 更多