ARTS打卡计划第二周-Review

Posted dongqisilent

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ARTS打卡计划第二周-Review相关的知识,希望对你有一定的参考价值。

本周review的文章是:https://medium.com/@hakibenita/optimizing-django-admin-paginator-53c4eb6bfca3

改篇文章的题目是:Optimizing Django Admin Paginator,How we finally made Django admin fast for large tables。

django分页的时候,大部分时间都会消耗在求count上,本篇文章提到了几点用于提升大表分页的方法:

1、重写默认的分页实现

2、在计算count的时候,直接写一个比较大的假的记录总数

3、在计算count的时候,如果查询时间大于阈值,设置一个假的count

4、可以先explain一下django 的queryset的执行计划,提前避免过大的查询

5、缓存count

 

这篇文章虽然是针对django的,但是提供了一些很好的思路,在java开发中,如果使用了第三方的mybatis分页插件,很大概率,在计算记录count的时候,是不走索引的。很多框架在计算count的时候,只是使用count(sql)。

这个时候,我们自己去计算这个count,而不是使用默认的分页。第三条其实也非常常用,可以使用spring的事务的timeout注解,也可以使用hystrix的超时机智去控制。第四条提供了一个新的思路,在执行一个sql之前,可以让程序去explain下mysql的执行计划,如果说可能的查询会非常慢的话,能提前知晓,去做替代方案。总之这个文章虽然是讲django的,但是提供了一些非常独特的意见。

以上是关于ARTS打卡计划第二周-Review的主要内容,如果未能解决你的问题,请参考以下文章

ARTS打卡计划第一周-Review

ARTS打卡计划第四周-Review-构建大规模django应用的一些建议

ARTS打卡计划第6周-REVIEW-超越编码的避免项目失败的软技能

ARTS打卡计划第十周

ARTS打卡计划第十四周

ARTS打卡计划第六周