加速经常使用Django随机查询

时间:2011-08-23 10:48:49

标签: python django memcached cloud-hosting rackspace-cloud

我有一个查询设置,它将来自数据库的28个随机记录放入JSON响应中。这个页面每隔几秒钟就会被点击一次,但目前我觉得这个页面太慢了。

在JSON响应中我有:

  • ID的
  • 用户名
  • 一个Base64缩略图

这些都来自三个相关的表格 我渴望听到其他一些解决方案,而不是用户只是点击一个页面,查找28个随机记录并吐出响应。我有一个想法:

  • 运行一个进程,使用JSON响应每隔30秒左右创建一个缓存页面。

这是一个不错的选择吗? 如果是这样,我很想知道如何做到这一点。

再次感谢,
希望每个人都很好

2 个答案:

答案 0 :(得分:4)

Django支持各种缓存方法,包括内置和memcached。我会选择文档中的一个方法,并为json响应创建一个特定的视图。然后,您可以使用@cache_page装饰器并指定特定时间。

from django.views.decorators.cache import cache_page

@cache_page(60 * 15)
def my_view(request):
    ...

https://docs.djangoproject.com/en/1.3/topics/cache/

答案 1 :(得分:0)

如果表是通过外键链接的,可能是using 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.

我不确定三张桌子,但它适用于两张桌子。