【问题标题】:Efficient storing a big table in Django cache在 Django 缓存中高效存储大表
【发布时间】:2011-11-11 23:00:36
【问题描述】:

我使用 Django 和 jqGrid 并通过 AJAX 加载页面。有时,查询非常复杂,页面加载速度非常慢,因为远页面要慢得多(这是意料之中的,结果通常超过 100k 个对象)。我认为结果缓存会解决问题,增加了第一页的加载时间,但随后会大大加速后续页面的加载。

相反,它使第一页的加载速度非常慢,甚至后续页面也需要大量时间(在标准 PC 上为 11 秒)。我正在使用 locmem 缓存后端。 有任何想法吗?为了比较,我尝试将结果存储在全局字典中,效果要好得多(后续页面只需 1 秒),但我听说这不是一种安全的方式。

有什么想法吗?

【问题讨论】:

    标签: django caching jqgrid django-cache django-caching


    【解决方案1】:

    您可以考虑加热缓存。这可以手动完成,也可以使用 celery 之类的队列框架在另一个页面加载后在后台缓存后续页面或查询集。

    看看 johnny-cache,它执行透明的查询集缓存。这可能(我再说一遍,可能)解决你所有的问题。

    【讨论】:

    • 其实大部分问题都是由于生成缓存表的效率不高造成的。而且我不知道为什么从缓存中读取这么慢,但只有在一台计算机上才会这样。
    猜你喜欢
    • 2019-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-20
    • 1970-01-01
    • 2014-07-06
    • 2012-08-06
    • 1970-01-01
    相关资源
    最近更新 更多