正常来讲,网站多或者少,都需要进行分页才好。有的网站,为了防止一些不必要的采集麻烦,移除了分页功能,这是没办法的事。有时候有没有分页功能,影响也不大。
但既然要使用分页功能,有些东西就不得不注意。
主要就是注意效率问题。
一般关于django分页pagination的使用教程,都差不多。
先查询,获得一个queryset,然后进行分页。
那么问题就在这儿
有朋友做过测试,当queryset数据量达到3000条的时候,查询时间就差不多要1s的时间,如果网站数据更多的话,那进行分页,所消耗的时长将会更长,这对于网站来讲,是难以接受的。
怎么优化?通常来讲,就是减少queryset数据量。
我们可以参考百度、谷歌、必应这些搜索引擎的做法,这些搜索引擎搜索结果量都比较大的,他们怎么做的呢?
百度搜索结果,每次只展示10页,总共分页100
谷歌也是如此
必应每次展示5页,最多也就分页20
看到这咱们就基本上明白了,不管数据多少,没必要动不动就objects.all()这样
我们一般小网站,弄个20页就足够了呢!这样子可以大大减少查询量,提升网站访问速度。
标签: