自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

转载 基于索引的MySQL优化

今天查看MySQL慢查询日志,查看一个四表关联的SQL操作,耗时1006s。这次也是基于基于子查询的思路,对上表进行优化。使时间复杂度降到n^2级别。但优化之后时间反而是原来的三倍多。原SQL语句:explain select distinct b.businessId fromgte_order o, gte_jy_contract c, flow...

2018-08-15 21:59:00 175

转载 SQL优化:

今日给人查找数据,时间关系,写个比较粗暴的SQL语句:#2s587ms#直接将所有表关联,比较粗暴select go.businessId,dd.dict_namefrom fn_xte.gte_order go,fn_config.t_dictionary_type dt,fn_config.t_dictionary_dict ddwherego.appId...

2018-08-15 21:58:00 149

转载 in的对象选择(子查询还是List集合),in 的优化,in与exists

近日查看SQL慢查询日志,发现对于in的查询总是出现超时问题。超时相关SQL语句:select * from flow_ru_bizvar where businessId IN () and status = 0。可以看到在这句SQL中,最耗时的就是因为in的原因。这里in的对象是一个Long类型(businessId)的List。先是从另一个表中,select出相关的business...

2018-08-15 21:57:00 428

转载 嵌套查询及其作用域:

近日整理数据库中的点单规则数据时,在写SQL语句时遇到了一个bug,解决办法以及原因整理出来。事例SQL,(select city.cityName as '城市',cdr.role as '角色',cdr.buildType as '规则',city.companyName as '规则code',cdr.filter as '区域'from config_diandan_ru...

2018-08-15 21:56:00 220

转载 group by实现原理及其作用

mysql中group by实现方式有三种,松散索引,紧凑索引,临时文件(文件排序)。在网上看了相关的介绍,大部分介绍都比较晦涩难懂,这里说下我的理解。在学习SQL优化时,我们都知道可以对group by进行优化的方式就是对group by引用的字段建立索引。当group by引用多个字段时,我们建立的相应的索引也应包含多个字段。对group by操作优化的原理就是让mysq...

2018-08-15 21:55:00 339

转载 批量打回未报bug修复

半天写完了代码,从此开始了三天的bug修复。。。问题背景:从合同系统那边获取数据。1.开发完后,利用mock模拟合同数据,获取(mock中的合同)数据成功,但是在解析合同数据时出错,原因,mock中的数据是济南的,测试用的单子是烟台的,合同字段不匹配,导致出错。2.mock中的合同数据可以获取,但是房屋的数据却无法获取,期间考虑用的参数可能不同,于是先后试了houseId,h...

2018-08-15 21:53:00 134

转载 解析Job,bpmn文件的小项目总结

1.在使用String类中split(String regex)切割字符串abcd.job遇得到job字符串时,直接使用split("."),导致数组超出界限错误原因:得到的数组长度为0.结论:对于像 . ,*,|这些特殊的字符作为切割界限符时要加转义字符,如:“\\.”,"\\|"。2.在Job文件中,对于流程-待办,待办-变量两者都是一对多的关系,在fn-xte中,项...

2018-08-15 21:53:00 219

转载 用户短时间内多次提交与保存带来的问题

1.问题描述:反馈,用户提交待办后,流程图中的状态没有改变2.分析原因:状态由数据库中待办的状态所决定,查明数据库,代办的状态为未提交,状态错误。(此类问题由多线程访问冲突所致,无法进行问题重现。)查日志:查到的相关日志结果:1.acviti报的Exception:can not find taskId2.有一个请求(线程)成功执行了待办提交这个操作,...

2018-08-15 21:52:00 418

转载 嵌套连接

1.正常的连接2.使用缓存的连接3.内连接的顺序性,优化程序可对其顺序进行优化,谓词的下沉,先根据其中子句中的条件(最左边的)过滤再进入到内层的表进行匹配。4.外连接,优化程序不会对其进行优化,完全按照程序员写的顺序进行连接。先匹配行,对根据其中子句中的条件进行判断。5.内链接可以优化为内链接,(如果表1外连接表2,对于表2中的字段设为null,一次来匹配表1,对于这...

2018-08-15 21:51:00 477

转载 多范围读取优化

对于辅助索引来说,我们需要查询的字段是辅助索引的字段,在辅助索引找到对应的主键(放到buffer中),然后将主键进行排序。根据排序后的主键去查询磁盘表,这样通过将随机IO变成顺序IO来减少磁盘IO的次数。对于MyISAM也是这样的原则,首先根据数据行的id对得到索引字段字段进行排序,而非主键,这是MyISAM和InnoDB的区别导致的。使用场景: 对于InnoDB和My...

2018-08-15 21:50:00 162

转载 全表 or 索引

这一篇文章证实了以前对MySQL优化程序的工作原理。MySQL就像一个人一样,总是聪明的去选择当前最快的方式去查询,而不是像Oracle数据那样死板地根据规格去查询。查询的要求在于快。而对于数据库来说,最耗时的在磁盘IO,如何减少磁盘IO的次数,成为提高查询速度的最为关键的因素。于是在这种情况,基于B树,B+树的索引就应运而生了。索引又有聚簇索引与非聚簇索引之分,其主要区别在...

2018-08-15 21:49:00 192

转载 Order by

order by优化: order by使用filesort,索引对结果集进行排序。这里介绍一下,使用索引排序的情况,以及不使用索引的情况。 使用索引的情况:1.当order by未使用的(索引)字段,是常量时(在where子句中);2.满足最左前缀时;3.如果索引不包含所要查询的所有列时,只有在访问索引较为高效时才会使用索引,在确定查询计划时MySQL会对情况...

2018-08-15 21:48:00 451

转载 DINSTINCT

DISTINCT是对结果集进行去重,有三点需要注意。1.在大多数情况下(两者后面所跟的字段相同时),DISTINCT跟group by是等效的,此时DISTINCT可以看作group by的一个特例,DISTINCT会使用到group by。如:select a,bfrom tableAgroup by a,b关于distinct的优化,可以参考group by的...

2018-08-15 21:47:00 617

转载 智力题

问题1:有4盒药丸,每盒内的药丸足够多。其中一盒药丸均被污染,污染后的药丸比正常的药丸重量(重量已知,设为1)大一。给你一个天平。找出被污染的药丸。答:对4盒药丸进行编号1~4,分别针对每盒药丸取出相应的药丸(取出的药丸数为对应的盒序号),计算所有取出的药丸的重量,被污染的盒为:计算出的重量-(1+2+3+4)。问题2:你让工人为你工作7天,给工人的回报是一根金条。金...

2018-06-24 20:15:00 138

转载 概率问题

问题1:一个公交站在1分钟内有车经过概率是p,问3分钟内有车经过概率答:将3分钟分成三段即可,每段一分钟。(因为单位时间内有车经过的概率都是相同的,这是本题的基本依据)每段有车经过的概率都是p,故每段(每分钟)没有车经过的概率为1-p。所以三分钟(三段)内没有车经过的概率为1-(1-p)^3。问题2:假设一段公路上,1小时内有汽车经过的概率为96%,那么,30分钟内...

2018-06-24 10:01:00 1761

转载 设计模式之策略模式

策略模式是一种定义一系列算法的方法,从概念上说,所有这些方法完成的都是一样的工作,只是完成的方式(或者说是实现不同)不同。它可以一种相同的方式来调用所有的算法,减少了各种算法类与使用算法的类之间的耦合。策略模式的优点:1.策略模式的Strategy类层次为Context定义了一系列的可供重用的算法或行为。2.每个算法都有自己的实现类,可以通过接口进行单...

2018-01-03 21:13:00 93

转载 Java基础之equals() 和 hashCode()

equals()是Object中的一个方法:1 public boolean equals(Object obj) {2 return (this == obj);3 }在Object中equals()方法返回结果其实是跟 == 返回的结果是一致的。但是,子类中对其进行了重写,如String 1 public boolean equ...

2018-01-02 20:06:00 98

转载 深入分析Java中的 == 和equals

关于Java中的 == 和equals的解释请看这位博主的文章 :http://www.cnblogs.com/dolphin0520/p/3592500.html以下是我对这篇文章的一些扩展。对创建实例过程的理解:public static void main(String[] args) { Human man = new Man(); Human w...

2018-01-02 17:31:00 113

转载 设计模式之工厂模式

简单工厂模式:简单工厂类:内有一个产品抽象类型的成员变量,控制着生产具体产品的逻辑(switch-case语句)产品的抽象类:具体的产品类:继承或实现了产品的抽象类(接口)。举例来说,有生产手机(产品的抽象类)的工厂(简单工厂),工厂需要根据(相关负责人)传来的命令来决定是生产小米手机还是苹果手机(这个工厂有点像富士康)。这个小米手机和苹果手机就是手机的具体类。关于UML...

2018-01-01 21:38:00 89

转载 JVM之垃圾收集器

Serial收集器:采用复制算法,作用区域为新生代,是一个单线程的收集器。它执行收集工作时,只使用一个CPU或一条收集线程去完成垃圾收集工作,在执行工作期间,暂停其他所有的工作线程(Stop The World),直到它收集结束。是虚拟机运行在Client模式下的默认新生代收集器,因为:应用程序小,JVM管理的内存回收时间相应就少;高单线程收集率,没有线程切换的开销,简单高效。...

2018-01-01 20:39:00 97

转载 JVM之字节码执行引擎

方法调用:方法调用不同于方法执行,方法调用阶段唯一任务就是确定被调用方法的版本(即调用哪一个方法),暂时还不执行方法内部的具体过程。方法调用有,解析调用,分派调用(有静态分派,动态分派)。方法解析:解析调用一定是一个静态的过程,在编译期就完全确定,可以在类加载的解析阶段就把涉及的符号引用转化为直接引用,不会延迟到运行期再去完成。所有方法调用的目标方法在Class文件里面都...

2018-01-01 16:52:00 107

转载 设计模式之代理模式

代理模式有静态代理和动态代理静态代理:提到代理,我们首先想到的就是代理商了,代理商就是替厂家卖产品,这里有三个关键的地方,第一点,卖产品的行为是代理商做的(至少对于消费者来说,消费者接触的就是代理商);第二产品是厂家的(也就是说代理商卖的商品是厂家的,而代理商是没有产品的,从这点来说实质上还是厂家再卖产品)。回到我们的静态代理上,静态代理有三个角色,委托类(相当于厂家),代...

2017-12-29 21:35:00 82

转载 Java并发之同步原语

volatile:定义:Java编程语言允许线程访问共享变量,为了确保共享变量内被准确和一致性地更新,线程应该确保通过排它锁单独获得这个变量。根据volatile的定义,volatile有锁的语义。作用:1.保证共享变量的可见性(这是volatile作为轻量级锁的基础);    这里可见性的意思是:当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值(与上篇定义的可见...

2017-12-28 10:29:00 214

转载 Iterator与ListIterator的区别

Iterator与ListIterator  相同点:(1)两者都是fail-fast机制,都是作为内部类实现的。  区别:二者的区别主要是功能上的;     (1)Iterator实现了接口Iterator,属性有cursor(下一个要遍历的元素索引),lastRest(上一个遍历元素的索引),          方法有,hasNext(),next(),remove(...

2017-11-14 17:31:00 133

转载 java集合之深入分析ArrayList

ArrayList特点:ArrayList方法实现:  扩容方法的实现:    源码:      1 private void ensureCapacityInternal(int minCapacity) {2 //如果数组为默认大小,则扩大的容量为minCapacity和默认值两个值的较大者3 if (elementDa...

2017-11-12 17:46:00 98

转载 深入分析HashMap

本文基于jdk1.8HashMap特点:HashMap具体方法分析:  put方法分析:  执行流程图:     public V put(K key, V value) { return putVal(hash(key), key, value, false, true); } /** ...

2017-11-12 11:32:00 78

转载 ssm项目,web容器无法初始化项目

在web.xml中配置加载spring时,发现项目无法运行;而去掉spring的配置时,项目可以被初始化。此时应考虑到spring的配置文件中存在错误,以至于web容器无法对项目成功初始化,在web.xml中配置log4j,根据打印的信息对spring的配置进行修改。 <context-param> <param-name>log4jC...

2017-10-18 22:46:00 234

转载 疯狂java学习笔记

面向对象: 从现实世界中客观存在的事物(对象)出发构造软件系统,并在软件系统构造中运用人类的自然思维方式,强调直接以现实世界中的事物为中心来思考,认识问题,并根据这些事务的本质特点,将他们抽象为系统中的类,作为系统的基本单元,这使得软件系统中的组件直接映像到客观世界,并保持客观世界中事物及其相互关系的本来面貌。类和对象: 类是对一类事物的抽象,...

2017-09-29 16:34:00 68

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除