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的,但是提供了一些非常独特的意见。

原文地址:https://www.cnblogs.com/dongqiSilent/p/10779747.html

时间: 2024-08-30 04:15:39

ARTS打卡计划第二周-Review的相关文章

ARTS打卡计划第一周-Review

本周分享的文章来自于medium的 Testing Best Practices for Java + Spring Apps 这个文章主要讲的是java测试的一些最佳实践 1.避免函数返回void,返回void不利于写单元测试,因为返回void不知道方法执行的内部情况 2.使用有意义的 assertions,可以使用  https://google.github.io/truth/ 类库 3.记得测试异常 4.可以使用变量进行多次测试 5.使用Mockito进行mock测试 原文地址:http

ARTS打卡计划第二周-Algorithm

665. 非递减数列  https://leetcode-cn.com/problems/non-decreasing-array/ 给定一个长度为 n 的整数数组,你的任务是判断在最多改变 1 个元素的情况下,该数组能否变成一个非递减数列. 我们是这样定义一个非递减数列的: 对于数组中所有的 i (1 <= i < n),满足 array[i] <= array[i + 1]. class Solution { public boolean checkPossibility(int[]

ARTS打卡计划第一周

Algorithms: https://leetcode-cn.com/problems/two-sum/ Review: https://www.infoq.cn/article/EafgGJEtqQTAa_0sP62N Q版本,慢慢雏形已经出来. Tips: c++11 : 1.nullptr   是一种特殊类型的字面值, null 指针常量,可以转换成任意其他指针类型,是一个关键字.之前的NULL是一个预处理变量,需要单独引入头文件cstdlib,其值也是0. #ifdef __cplus

三节课MINI计划第二周

任务:完成一份用户反馈的收集,并进行分析 第一步:去你能想到的公开.非公开渠道收集最近90天,至少40条和B站相关的有效用户差评反馈,并根据你对业务的理解分类整理,以表格的形式进行整理,以图片的方式提交系统. *课程导读 一.通过用户反馈发现问题 (一)通过用户反馈关注什么 1.自身产品的问题 2.竞品的问题(内部or外部) 3.可能的机会点——满足用户的需求 (二)通过哪些渠道收集用户反馈 ps:1.半公开渠道:朋友圈.微信群.用户评价 2.用户表达意愿强烈:百度手机助手.小米应用商店.豌豆荚

ARTS打卡计划第六周

Algorithms: https://leetcode-cn.com/problems/longest-palindromic-substring/ 中心扩展法首先考虑,当然看到有个动态规划,一直很难理解.动态规划要好好研究一番. Review: https://link.medium.com/rstYA3alzX Goodbye, Object Oriented Programming” by Charles Scalfani Tips: c++11 : 1.正则表达式 RE库. Share

ARTS打卡计划第八周

Algorithms: https://leetcode-cn.com/problems/repeated-substring-pattern/ 重复子字符串 Review: “I’m Leaving Google?—?and Here’s the Real Deal Behind Google Cloud” by Amir Hermelin https://link.medium.com/mPXXS8aBWX Tips: android : init.rc Android初始化语言包含了四种类

ARTS打卡计划第十周

Algorithms: https://leetcode-cn.com/problems/next-greater-node-in-linked-list/ 链表中下一个更大的值,双层循环及优化,后面看可以栈处理,学习了 Review: “Can You Avoid Functional Programming as a Policy?” by Eric Elliott https://link.medium.com/oWci9jdLjY Tips: android : Andorid  lin

ARTS打卡计划第十六周

Algorithms: https://leetcode-cn.com/problems/min-stack/submissions// Review: https://www.infoq.cn/article/why-do-we-need-webrtc Tips: android handler. 主线程不做处理复杂的问题,创建hanlder发消息到主线程,主线程loop 从messagequeue取消息进行处理. Share: 分享下review的文章小结 y也是讲解了webrtc之前相关知

ARTS打卡计划第三周-Algorithm

1. 两数之和 提供了2种揭发 public class Solution1 { public int[] twoSum(int[] nums, int target) { int len=nums.length; int[] result = new int[2]; for(int i=0;i<len;i++) { for(int j=i+1;j<len;j++) { if(nums[i]==target-nums[j]) { result[0]=i; result[1]=j; } } }