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打卡计划第二周
Algorithms: https://leetcode-cn.com/problems/3sum/ 算法是先排序,然后按照两个数和两边逼中,考虑去重. Review: https://www.inf ...
- ARTS打卡计划第二周-Share-使用java注解对方法计时
现在有这样一种常见,系统中有一个接口,该接口执行的方法忽快忽慢,因此你需要去统计改方法的执行时间.刚开始你的代码可能如下: long start = System.currentTimeMillis( ...
- ARTS打卡计划第二周-Tips-mysql-binlog-connector-java的使用
最近发现一个挺不错的框架mysql-binlog-connector-java,可以实时监控binlog的变化. 首先检查mysql的binlog是否开启,在开启的情况下: 引入依赖 <depe ...
- ARTS打卡计划第二周-Algorithm
665. 非递减数列 https://leetcode-cn.com/problems/non-decreasing-array/ 给定一个长度为 n 的整数数组,你的任务是判断在最多改变 1 个元 ...
- ARTS打卡计划第一周-Review
本周分享的文章来自于medium的 Testing Best Practices for Java + Spring Apps 这个文章主要讲的是java测试的一些最佳实践 1.避免函数返回void, ...
- ARTS打卡计划第九周
Algorithms: https://leetcode-cn.com/problems/merge-two-sorted-lists/submissions/ 合并两个链表 Review: “Pu ...
- ARTS打卡计划第一周
Algorithms: https://leetcode-cn.com/problems/two-sum/ Review: https://www.infoq.cn/article/EafgGJEtq ...
- ARTS打卡计划第一周-Share-系统字典模块的设计
在软件开发的过程,经常有一些类型的字段信息:性别.学历.职级.车辆类别.公司类型.结算类型等.这些字段有2个特征:1是字段可选的类型是有限,2是字段可能会变化,我们把这种字段描述为字段字段. 本篇文 ...
- ARTS打卡计划第一周-Tips-ControllerAdvice的使用
通常在开发具体项目过程中我们可能会面临如下问题: 统一所有的json返回结果 统一处理所有controller中的异常,并且给不同异常不同的返回状态值 统一对返回的接口做数据校验或者加密,防止篡改 在 ...
随机推荐
- laravel+Redis简单实现队列通过压力测试的高并发处理
秒杀活动 在一般的网络商城中我们会经常接触到一些高并发的业务状况,例如我们常见的秒杀抢购等活动, 在这些业务中我们经常需要处理一些关于请求信息过滤以及商品库存的问题. 在请求中比较常见的状况是同一用户 ...
- S/Kademlia2007 翻译
S/Kademlia:实现安全Key路由的可行方法 摘要 安全性是完全分散式P2P系统中的常见问题. 尽管关于如何创建一个安全的基于Key的路由协议存在几点建议,但一个可行的方法仍然无人参与. 在本文 ...
- sql查询统计
SELECT TOP 50 (select text from sys.dm_exec_sql_text(sql_handle)) as [SQL], CAST( ((qs.total_elapsed ...
- 刘志梅 201771010115 《面向对象程序设计(java)》 第十八周学习总结
实验十八 总复习 实验时间 2018-12-30 1.实验理论知识 (1)第一个关键词:public称为访问修饰符,用于控制程序的其他部分对代码的访问级别. 第二个关键词:class表明java程序中 ...
- 前端使用crypto.js进行加密
前端使用crypto.js进行加密 https://www.cnblogs.com/lz2017/p/8046816.html 最近我在前端使用Cookies保存密码的时候需要前端来进行加密工作, ...
- 记录7: office 2016 Mac不能使用的解决过程
前几天更新硬盘并升级到high sierra后,今天第一次打开word/excel发现用不了,提示让我进行active.很奇怪,之前的license应该是一直有效的.于是去www.office.com ...
- 【转录组入门】3:了解fastq测序数据
操作:需要用安装好的sratoolkit把sra文件转换为fastq格式的测序文件,并且用fastqc软件测试测序文件的质量 作业:理解测序reads,GC含量,质量值,接头,index,fastqc ...
- windows10下 MySQL5.7.18版本安装过程及遇到的问题
windows10下 MySQL5.7.18版本安装过程及遇到的问题 mysql-5.7.18-winx64 安装 1.解压 此次将MySQL装在H盘,依个人喜 ...
- (转)Mysql哪些字段适合建立索引
工作中处理数据时,发现某个表的数据达近亿条,所以要为表建索引提高查询性能,以下两篇文章总结的很好,记录一下,以备后用. 数据库建立索引常用的规则如下: 1.表的主键.外键必须有索引: 2.数据量超过3 ...
- FastSocket客户端/服务端通讯示例 客户端被动接收
示例代码参见 http://www.cnblogs.com/T-MAC/p/fastsocket-asyncbinary-usage.html 我这里只写一份客户端如何被动接收的代码. 先从As ...