Skip to main content
 首页 » 编程设计

python之在 Django 中缓存静态数据库表

2025年04月02日50txw1958

我有一个 Django 网络应用程序,该应用程序当前处于运行状态并且收到了很多查询。我正在寻找优化其性能的方法,其中一个可以改进的领域是它与数据库的交互方式。

在当前状态下,对特定 View 的每个请求都会将整个数据库表加载到 pandas 数据框中,并针对该数据框执行查询。该表包含超过 55,000 行文本数据(大部分是坐标)。

为了避免不必要的查询,有人建议我将数据库缓存到内存中,并在第一次加载时将其缓存。这将消除数据库方面的一些开销。我以前从未使用过 Django 的这个功能,所以我有点迷茫。

Django manual似乎没有具体实现我想做的事情。将整个表存储在内存中是个好主意还是将其存储在文件中更好?

请您参考如下方法:

我遇到了类似的问题,django-cache-machine工作起来很有魅力。它使用 Django 缓存功能来缓存您的查询结果。设置非常简单(假设您已经配置了 Django 的缓存后端):

pip install django-cache-machine 

然后在你要缓存的模型中:

from caching.base import CachingManager, CachingMixin 
 
class MyModel(CachingMixin, models.Model): 
    objects = CachingManager() 

就是这样,您的查询将被缓存。