我正在运行在数据库中花费大量时间的各种测试。
我想将其全部保存在内存中并且不接触数据库,希望这样可以加快速度。就像使用 sqlite3 的内存选项一样。我不需要持久性/耐用性/诸如此类的东西,测试后所有东西都会立即丢弃。
这可能吗?我尝试调整我的 postgres 内存相关变量(如下面的解决方案),但这似乎并不影响它执行的数据库写入次数,而且我找不到任何看起来像“内存中”选项的东西.
https://dba.stackexchange.com/questions/18484/tuning-postgresql-for-large-amounts-of-ram
最佳答案
我前段时间写过一篇详细的帖子:
Optimise PostgreSQL for fast testing
您可能会发现它很有用;它涵盖了使 PostgreSQL 在没有持久性的情况下运行的选项以及对运行测试有用的其他调整。
您实际上不需要内存操作。如果 PostgreSQL 设置为不将更改刷新到磁盘,那么在实践中,适合 RAM 的 DB 几乎没有区别,而对于不适合 RAM 的 DB,它不会崩溃。
您应该使用您在生产中使用的相同数据库引擎进行测试。使用 SQLite、Derby、H2 等进行测试,然后在 PostgreSQL 上进行实时部署没有多大意义……任何 Heroku/Rails 用户都可以从经验中告诉您。
关于postgresql - 将 postgres 完全保存在内存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17736102/