内存数据库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 DROP TABLE失败,出现ERROR:共享内存