我有一个 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()
就是这样,您的查询将被缓存。
