首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将PostgreSQL表加载到内存中的缓存中,以便在python/django中进行x维查找

将PostgreSQL表加载到内存中的缓存中,以便在python/django中进行x维查找
EN

Stack Overflow用户
提问于 2019-03-27 04:00:10
回答 1查看 1.2K关注 0票数 0

我正在开发Python/Django webapp...and,我实际上是第一次深入研究Python (通常我是.NET/core )...currently,在后端运行PostgreSQL。我有大约9-10个简单的(二维)查找表,它们将经常被实时访问,我想将它们缓存在内存中。

理想情况下,我希望用Postgres本身来完成这个任务,但可能是另一个数据引擎和/或其他库适合帮助它(我对Python库不太熟悉)。

目标是:

  1. 查找是在内存中处理的(数据占用永远不会“大”)。
  2. 理想情况下,结果可以在第一次拉(通过完全参数签名)后缓存,以优化时间,尽管这在一定程度上是可选的,因为我假设内存中的查找将是非常快速的anyway....and。
  3. 也是可选的,但理想的情况是,尽管为了导入/人工可读性/编辑的目的,查找表是单独存储在db中的,但我认为在加载到内存中时为查找生成x维数组是最佳的。虽然总共有9-10个查找表,但每个表只有10-15个值(有些较小),而对所有表的完全查找可能总共只有15个参数。基本上,它是一个equation....so修饰符的9-10个表,我们在每个表中查找x/y值,得到值,并将它们相加在一起。

因此,我想我正在寻找一个库和/或合适的后端来处理内存中的加载和缓存(同样,内存中内存占用的总量永远不会成为一个因素).并且可能会自动将x查找表解析为一个内存中的x维表,以提高效率(而不是单独进行9-10查找),....and缓存这些结果,以便在所有参数匹配之前的查询时重复使用(除非查找执行得如此快,这是无关紧要的)。

查找表不是很大.我会说,如果我编写代码来分解每个x/y值/范围,手工创建一个巨大的x维查找表,它可能会包含大约15个字段和150个行.所以我们不会谈论太多的data....but --它会经常被击中,而且我不想每次都针对实际的DB执行这些查找。

对于最适合于此的引擎/库的建议(仍然能够将postgresql用于持久存储)将受到极大的赞赏。

EN

回答 1

Stack Overflow用户

发布于 2019-03-27 07:08:37

您不需要做任何特殊的事情来达到这个目的:如果您经常使用这些表,PostgreSQL将使它们自动留在缓存中。

如果从一开始就需要对缓存中的表进行排序,请使用pg_prewarm。它允许您显式地将某些表加载到缓存中,并且可以像上次关闭前一样自动恢复缓存的状态。

一旦表被缓存,它们只会在您写信给表时导致I/O。

在我看来,你想象的高效内存数据结构听起来像是一个过早的微优化。我敢打赌,这些小型查找表不会导致性能问题(如果所有外键都有索引的话)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55369594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档