内存数据库django中的Postgresql

Posted

技术标签:

【中文标题】内存数据库django中的Postgresql【英文标题】:Postgresql in memory database django 【发布时间】:2016-09-10 01:08:56 【问题描述】:

对于性能问题,我想在 django 的内存数据库上执行优化算法(我可能会执行很多查询)。我知道可以在内存中使用 sqlite (How to run Django's test database only in memory?),但我宁愿使用 postgresql,因为我们的 prod 数据库是 postgresql 数据库。

有人知道如何告诉 django 在内存中创建 postgresql 数据库吗?

提前致谢

【问题讨论】:

rhaas.blogspot.co.at/2010/06/… 【参考方案1】:

这是过早的优化。如果您使用正确的索引,即使您在冷金属硬盘上运行 Postgresql 也非常非常快。如果您不将数据保存在磁盘上,您将面临一个痛苦的世界。

另一方面,如果您想通过运行内存中的 postgresql 数据库来加快测试速度,您可以尝试以下非持久性优化

http://www.postgresql.org/docs/9.1/static/non-durability.html

最激烈的建议是在该页面上使用 ramdisk。 Here's how 设置一个。按照 OS/Postgresql 步骤编辑 django settings.py 并将表空间添加到 DATABASES 部分。

最后但同样重要的是:这完全是浪费时间。

【讨论】:

你也许是对的,这可能是过早的优化。第一次我会在没有的情况下工作。稍后当我的算法正常时,我会尝试看看我是否获得了一些收益。谢谢【参考方案2】:

这是不可能的。你不能只在内存中使用 PostgreSQL;至少不会违背使用 PostgreSQL 的目的。与 PostgreSQL 一起运行的内存数据存储(如 Redis)是您能做的最好的事情。

此外,此时配置还远远超出了 Django 的掌控。它必须在 Django 的环境之外完成。

您似乎对这些系统的工作原理有些了解。首先构建您的应用程序以验证一切正常,然后担心以这种方式优化数据库。

【讨论】:

以上是关于内存数据库django中的Postgresql的主要内容,如果未能解决你的问题,请参考以下文章

Postgresql 内存表空间中的插入速度慢

循环中的PostgreSQL DROP TABLE失败,出现ERROR:共享内存

简单查询导致 Django 中的内存泄漏

在 Django 中的大表上的内存效率(常量)和速度优化迭代

PostgreSQL 内存参数的设置

仅在内存中运行 PostgreSQL