我设置了一个查询,将数据库中的 28 条随机记录放入 JSON 响应中。这个页面经常被点击,每隔几秒钟,但目前对我来说太慢了。
在 JSON 响应中,我有:
- 身份证
- 用户名
- Base64 缩略图
这些都来自三个链接表。
我很想听听其他一些解决方案,而不是用户简单地点击一个页面,查找 28 条随机记录并吐回响应。我有一个想法:
- 运行一个进程,每 30 秒左右使用 JSON 响应创建一个缓存页面。
这是一个不错的选择吗?如果是这样,我很想知道如何做到这一点。
再次感谢,
希望大家都好
我设置了一个查询,将数据库中的 28 条随机记录放入 JSON 响应中。这个页面经常被点击,每隔几秒钟,但目前对我来说太慢了。
在 JSON 响应中,我有:
这些都来自三个链接表。
我很想听听其他一些解决方案,而不是用户简单地点击一个页面,查找 28 条随机记录并吐回响应。我有一个想法:
这是一个不错的选择吗?如果是这样,我很想知道如何做到这一点。
再次感谢,
希望大家都好
Django 支持多种缓存方法,包括内置的和 memcached 的。我会选择文档中的一种方法,并为您的 json 响应创建一个特定的视图。然后,您可以使用 @cache_page 装饰器并指定特定时间。
from django.views.decorators.cache import cache_page
@cache_page(60 * 15)
def my_view(request):
...
如果表是通过外键链接的,也许使用 select_related?从链接中,他们给出的例子(你需要向下滚动一点):
>>> e = Entry.objects.select_related().get(id=2)
>>> print e.blog # Doesn't hit the database; uses cached version.
>>> print e.blog # Doesn't hit the database; uses cached version.
我不确定三张桌子,但两张桌子效果很好。