请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Django admin 分页性能问题

在Django 后台中,使用 list_per_page = 10,分页可以生效,在本地速度也很快。

但当数据总量到了1000+条,list_per_page=10,的速度就很慢,尤其是在翻页的时候,在本地速度还可以,但是在服务器上,就很慢了。开始以为是数据库问题,后来发现,最立竿见影的方法,就是临时升宽带,从5M升到10M,速度就快了很多。但这不是长久之计。

老师,请问这种问题应该怎么处理?

正在回答

插入代码

1回答

Django admin 分页性能问题 数据总量到了1000+条,list_per_page=10,等于说有100多页

在这种情况下,为了提高分页的性能,我们可以考虑以下几个方面:


1.优化数据库查询性能。 如果查询语句效率较低,那么每次查询 10 条数据都需要消耗较多的时间。可以通过 Django ORM 自带的查询优化功能,如 select_related() 和 prefetch_related(),以及数据索引来提高数据库查询速度和性能。


2.添加分页缓存。 可以使用 Django 缓存机制将分页数据缓存在内存中,以减少查询数据库的次数和提高响应速度。


3.使用 Django pagination 插件。 Django 内置了 pagination 的插件,可以用来优化分页性能。其中的 PageNotAnInteger 和 EmptyPage 异常处理器可以保证当用户请求的页码不存在或者不是有效的页码时,能够有合理的响应。


4. 减少查询的总行数。 可以通过限制查询的范围或者使用类似于 Etag 或者 Last-Modified 的 HTTP 缓存机制来减少不必要的数据查询。

0 回复 有任何疑惑可以回复我~
  • 提问者 979811597 #1
    好的,谢谢老师,在调试的过程中,阴差阳错的把这个问题解决了。在admin.py 中,注释掉list_filter,速度立竿见影就上来了,也不知道为什么。
    回复 有任何疑惑可以回复我~ 2023-06-14 15:12:29
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号