Py学习  »  Django

[精华] 询问一下有关django-pagination性能问题

neatpath • 10 年前 • 9403 次点击  

之前看了 七步教你实现Django网站列表自动分页 一直在使用pagination 可能一直自己做一些小玩意 所以性能没遇到过问题

最近刚刚转python 入职一家公司使用Django开发(就我一个web开发,其他都是后端twisted)

当然这不是重点 重点我做的是运营后台的管理系统 数据库不适用django生成的 而且数据库也没有关联索引无法使用django的db model

使用mysqldb: 901 242 条数据 耗时 20.1943230629
hold不住了 然后我看了下pagination/templatetags/pagination_tags.py下的代码

打印了一下数据的长度 居然取出了373 678条数据 我有点晕 为什么不是全部取出数据 或者只取出我规定的20条数据

打印了一下数据的长度

然后我google一下 有说在使用django query set的情况下 pagination 才会取出规定的20条数据 我就看了下之前写的项目

代码 代码

结果
我只规定取2条 但取出了库里12条记录 我直接有点晕了 enter image description here

最后我就抱着django query set的幻想又搜索了一下使用sql语句能否使用query set

from django.db import connections
cursor = connections['my_db_alias'].cursor()

使用这种方式查询数据库 当然结果还是残酷的 时间用了8.8029499054 比使用mysqldb的速度快许多 但是依然取出了373 678 条数据

所以请问各位大虾 这个pagination的性能问题如何解决 或者怎样优化会比较好 谢谢

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/308
 
9403 次点击  
文章 [ 2 ]  |  最新文章 10 年前
neatpath
Reply   •   1 楼
neatpath    10 年前

@01071028 谢谢 学习了

01071028
Reply   •   2 楼
01071028    10 年前

之前我也遇见过这种问题,后网上查是说django paginator性能确实很差。 后来我只好从数据库SQL下手,每次查询一页的数据(50条)给paginator。 同时给查询的结果数也给paginator以便正确分页。

paginator = Paginator(res_log, perpage, search_num)

参考: 改造django paginator http://2goo.info/blog/panjj/Django/2012/11/18/545