我将Django与jqGrid一起使用,并通过AJAX加载页面。有时,查询非常复杂,并且页面加载速度非常慢,因为远距离页面的速度要慢得多(这是可以预期的,结果通常会超过10万个对象)。我以为结果缓存可以解决问题,为第一页的加载增加了一些时间,但随后大大加快了后续页面的加载。

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

有什么想法吗?

有帮助吗?

解决方案

您可以考虑预热缓存。可以手动完成此操作,也可以使用诸如celery之类的排队框架来完成后续页面或查询集的缓存在另一个页面加载后在后台进行。

看看johnny-cache,它进行透明的查询集缓存。这可能(我重复,可能)解决了您所有的问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top