- 博客(81)
- 资源 (10)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 MySQL为什么第二次查询会快一些?缓存?不一定
最近在公司组织了一次SQL优化大赛,出现了一个问题引起了一位同事的不爽,为什么我优化出来SQL跟他的一样,为什么时间会相差那么大?并且都是加了SQL_NO_CACHE的情况下。其实在校验结果的时候,那位同事的SQL是第一个跑的,导致后面相同或者相似的SQL会比他的快很多。What?明明都已经禁用了query_cache,为什么还会有那么大的区别呢?也许是大家极少进行SQL优化,对Innod...
2019-09-05 14:51:16
4123
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 @Autowired用法详解
@Autowire是用在JavaBean中的注解,目的只是为了自动生成属性的getter和setter方法而不用手写。而autowire似乎跟@Autowire没多大的关系,autowire是在xml文件中进行配置的,可以设置byName、byType、constructor和autodetect;比如byName,不用显式的在bean中写出依赖的对象,它会自动的匹配其它bean中id名与本be
2016-08-25 13:26:17
273407
11
原创 Java中ES5.3批量插入_bulk实现方案
在演示环境MySQL到ES的全量数据初始化过程中,由于IO过多,遇到了ES的超时问题,listener timeout after waiting for [30000] ms,在测试环境是没有问题的,定位原因是同时插入大量文档,导致有些请求等待时间过长,在多次超时之后,同步就直接中断了。目前使用的ES5.5.3众所周知是十分尴尬的,用不了RestHighLevelClient,Transp...
2020-03-10 10:10:17
2944
1
原创 MySQL实时同步到Elasticsearch实现方案 —— canal(兼容ES5.X)
首先看一下canal的实现原理:canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送dump 协议 MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 canal ) canal 解析 binary log 对象(原始为 byte 流)怎么使用?...
2019-11-23 10:11:25
1983
1
原创 canal adapter支持Elasticsearch 5.X版本配置
先将elasticsearch下的pom文件中依赖的elasticsearch相关组件的版本号降至5.X<dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> &l...
2019-06-27 18:53:03
1797
11
原创 数据库索引的数据结构——B-树/B+树
一、 常见的查询算法我们知道,数据库查询是数据库的最主要功能之一。我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化。那么有哪些查询算法可以使查询速度变得更快呢?1. 顺序查找(linear search )最基本的查询算法当然是顺序查找(linear search),也就是对比每个元素的方法,不过这种算法在数据量很大时效率是极低的。 实例代码:...
2018-08-14 20:28:39
6550
2
转载 银行家算法
原文地址:https://zh.wikipedia.org/wiki/%E9%93%B6%E8%A1%8C%E5%AE%B6%E7%AE%97%E6%B3%95背景在银行中,客户申请贷款的数量是有限的,每个客户在第一次申请贷款时要声明完成该项目所需的最大资金量,在满足所有贷款要求时,客户应及时归还。银行家在客户申请的贷款数量不超过自己拥有的最大值时,都应尽量满足客户的需要。在这样的描述中,...
2018-04-13 16:25:34
458
原创 oracle数据库性能优化经验
数据库性能优化:1. 建立并正确的使用索引,遵循索引生效的规则;2. 查询时明确指定所需字段而不是使用*通配;3. 对于where的条件,过滤数据较多的条件放在右边(针对oracle,如果mysql则是从左到右);4. 尽量使用多表查询替代子查询;5. 使用分页查询;6. 尽量使用绑定,同时可以防止sql注入7. 可以通过存储过程等在用户较少的情况下执行,从而错开系统使用的高峰时间,提高数据库性能...
2018-04-10 22:12:58
339
转载 JVM类加载过程
看到这个题目,很多人会觉得我写我的java代码,至于类,JVM爱怎么加载就怎么加载,博主有很长一段时间也是这么认为的。随着编程经验的日积月累,越来越感觉到了解虚拟机相关要领的重要性。闲话不多说,老规矩,先来一段代码吊吊胃口。public class SSClass{ static { System.out.println("SSClass"); }...
2018-03-30 14:46:14
290
原创 快速排序改进优化
以前写的快速排序,基本上按下面伪代码这个套路写出来就完了,但其实对于快排,可以通过很多方面来进行改进以达到更好的效率。algorithm quicksort(A, lo, hi) is if lo < hi then p := partition(A, lo, hi) quicksort(A, lo, p) quicksort(...
2018-03-20 22:46:43
1765
原创 二叉树递归和非递归遍历(先序、中序、后序)
二叉树是一种非常重要的数据结构,很多其他数据机构都是基于二叉树的基础演变过来的。二叉树有前、中、后三种遍历方式,因为树的本身就是用递归定义的,因此采用递归的方法实现三种遍历,不仅代码简洁且容易理解,但其开销也比较大,而若采用非递归方法实现三种遍历,则要用栈来模拟实现(递归也是用栈实现的)。下面先简要介绍三种遍历方式的递归实现,再详细介绍三种遍历方式的非递归实现。 一、三种遍历方式的递归实现...
2018-03-17 23:01:25
993
原创 蛇形(回形)矩阵
最近面试又碰到了蛇形矩阵的输出,算是比较基础的算法实现,但以为时间紧迫思路有点乱做的不太完美感觉有些东西还是得动手记录一下才有助于记忆和理解,以后碰到了想不起来也可以翻来看看,所以还是得坚持写一下博客。 问题描述: 根据输入的树n,输出其回形矩阵,实例如下: 输入: 4输出: 1 2 3 4 12 13 14 5 ...
2018-03-17 20:15:30
1999
原创 Spring源码导入到Eclipse(基于Maven)
1.首先从Github(https://github.com/spring-projects/spring-framework)中获取Spring的SVN地址https://github.com/spring-projects/spring-framework.git2.在eclipse中选择branches目录下对应的版本导出,这里我选择的是3.1.x(因为目录大多数讲解Spring源码的书...
2017-12-13 10:23:50
4414
1
原创 利用ztree实现树形表格
最近公司的项目中要做一个树形表格,因为之前一直在用ztree实现基本的树形结构,理所当然的首先想到利用ztree来做。 网上找了一下别人做的树形表格,有使用ztree的,也有使用treeTable的,但效果都不太好,于是参考使用ztree的做法自己做了一个,贴出来供大家参考,请看注释说明,效果如下所示。<!DOCTYPE HTML><html> <head> <link hre
2017-09-27 10:19:52
8808
9
原创 利用SpringMVC下载不同类型文件
网上有看到使用SpringMVC来下载图片,pdf等等,但是仅限于规定文件类型的下载,查找了一下文档,写一个统一下载各种类型文件的Controller。 文件存放路径: 下载请求uri:http://localhost:8080/DownloadDemo/download/sample.zip@RequestMapping("download/{fileName:.+}") publ
2017-01-04 16:31:51
1558
原创 具体分析applicationContext.xml和spring3-servlet.xml
首先看一下web.xml,通过查看log4j的日志可以发现在服务器启动时applicationContext.xml是先于spring3-servlet.xml加载,其实有web容器规定好的,各个标签的加载顺序:context-param -> listener -> filter -> servlet
2016-08-25 11:59:44
2430
原创 URL和URI区别以及相对路径和绝对路径
URL和URI的概念一直以来都很模糊,最近刚好遇到了,借这个机会来深入了解一下,包括相对路径和绝对路径。 通过这个图可以知道URI(Uniform Resource Identifier 统一资源标识符)其实包括URL(Uniform Resource Locator 统一资源定位符)和URN((Uniform Resource Name 统一资源名称,它命名资源但不指定如何定位资源),可以说
2016-08-17 22:11:06
6265
原创 深入理解抽象类和接口
今天有位同学问了一个问题:接口里面的方法为什么不能同时声明为abstract和static? 这之前我又思考过这个问题,但没太在意,今天再看,觉得有必要记录一下。首先,什么抽象类? 《Java编程思想》中是这么定义的:包含抽象方法的类叫做抽象类。当然,一个抽象类中可以完全没有抽象方法,但是,这样的话,就没有必要把它声明为抽象类了。什么是接口? 接口其实是一个更加抽象的抽象类,接口里面的所
2016-08-05 22:04:57
630
原创 普通内部类和静态内部类总结
普通内部类可以访问其外部类的各种类型成员,但是静态内部类只能访问静态成员普通内部类里面不能定义各种静态的成员(包括静态变量、静态方法、静态代码块和静态内部类),而静态内部类中则可以; 静态变量和静态方法会出现这个语法错误(static methods can only be declared in a static or top level type)意思就是static方法只能在静态或者顶级类
2016-07-28 11:21:48
5886
原创 Mybatis问题汇总
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.tjw.demo.service.UserService] found for dependency: expected at least 1 bean which qualifies as autowire
2016-06-24 10:39:57
545
原创 HQL的左连接
最近做一个查询实现把一个表的记录全部显示出来并且显示关联的另外一个表的记录,这当然谁都知道要用到外连接查询,然而过程并不愉快。在Hibernate的映射文件中配置好关联关系之后,查询的时候可以直接使用比如select new map(student.studentID as studentID, student.studentAccount as studentAccount,student.stu
2016-06-06 21:17:18
7084
原创 测试for,foreach和Iterator遍历效率
今天突然间想起来之前看过一篇博客,说起了for和foreach遍历效率的区别,于是验证一番,得到如下结论。对于数组而言,for和foreach遍历效率相差不大。对于List而言,foreach和Iterator遍历效率相差不大(在我的机器上,测试用例用时几乎都在20000000纳秒以上),但是for比它们快了不止一个数量级(2000000纳秒以下)。 当然,foreach和Iterator只
2016-04-22 21:14:48
6789
转载 CVS SVN VSS对比整理
一、Subversion包含绝大部分CVS功能 Subversion 作为CVS 的重写版和改进版,其目标就是作为一个更好的版本控制软件,取代目前流行的CVS。Subversion 的主要开发人员都是业界知名的CVS 专家。Subversion支持绝大部分的CVS 功能/命令;Subversion 的命令风格和界面也与CVS 非常接近。当然,不同的地方正是对CVS 的改进。 二、全
2016-03-28 20:44:38
739
转载 JBOSS和Tomcat区别
原文地址:http://blog.csdn.net/zgmzyr/article/details/8718873JBoss Web和 Tomcat的区别 在Web2.0的浪潮中,各种页面技术和框架不断涌现,为服务器端的基础架构提出了更高的稳定性和可扩展性的要求。近年来,作为开源中间件的全 球领导者,JBoss在J2EE应用服务器领域已成为发展最为迅速的应用服务器。在市场占
2016-03-28 20:43:28
15932
转载 Weblogic和Tomcat区别
原文地址:http://blog.csdn.net/wanghuan203/article/details/7028754 J2ee开发主要是浏览器和服务器进行交互的一种结构.逻辑都是在后台进行处理,然后再把结果传输回给浏览器。可以看出服务器在这种架构是非常重要的。 这几天接触到两种Java的web服务器,做项目用的Tomcat,看视频看的是WebLogic S
2016-03-28 10:46:32
8386
原创 项目中学习到的SpringMVC实现机制
虽然说是学了SpringMVC,但只能算是入门水平,最近在做一个基于SpringMVC的项目,希望能通过这个项目能够对SpringMVC有深入的理解。这不,今天因为一个小Bug,发现了一直以来没有注意到的“常识“。Bug如下: Servlet.service() for servlet [spring3] in context with path [/ytc0.1] threw exception
2016-03-21 21:37:20
613
原创 关于Spring MVC的数据绑定问题
最近在做第一个基于Spring MVC的项目,发现了一些在学习过程中没有注意到的问题,比如数据绑定,Json数据转换等等。。。数据绑定 数据绑定最主要的问题就是复杂对象数组的绑定,当然,如果真在后台通过数组来绑定前台传递过来的Json字符串,会出很多问题,比如java.util.LinkedHashMap cannot be cast to com.xxx,要正确处理这个错误,真的会让人崩溃的。
2016-03-06 13:56:12
762
原创 关于SVN的SSL加密问题
今天搞得大半天的SVN,碰到了一些问题,也解决了一些问题,现在是要把解决的问题记录下来。关于VisualSVN 在安装VisualSVN的过程中,有一个复选框Use secure connection,这个复选框的意思大概就是在以后的访问服务器的时候,是否以SSL加密的方式,这个地方一开始安装的时候没有注意,直接勾选了,导致了在后面添加项目的时候,如果没有对Tortoise进行SSL的相关配置的
2015-12-12 19:20:47
5629
转载 Mark:Ajax参数中文编码乱码问题
link:http://jarg.iteye.com/blog/1300071Ajax不支持多种字符集,其默认的字符集是UTF-8,所以在应用Ajax技术的程序中应及时进行编码转换,否则对于程序中出现的中文字符将变成乱码。一般在以下两种情况下将产生乱码。1.发送路径的参数中包括中文,在服务器端接收参数值时产生乱码将数据提交到服务器有两种方法:一种是使用GET
2015-08-10 12:35:51
554
原创 sendRedirect和getRequestDispatcher().forward()的一些区别
二:response.sendRedirect(request.getContextPath() + "/welcome.jsp"); //response.sendRedirect()和request.getRequestDispatcher().forward()均可以实现跳转,并且也存在一些区别,其中一点就是在sendRedirect()中必须通过request.getContextPath()来获取项目的跟目录,不然会出现The requested resource is not available
2015-08-08 18:30:21
1215
转载 java.lang.IllegalStateException解决办法
一:java.lang.IllegalStateExceptionat org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1612)at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappC
2015-08-08 18:28:50
6344
转载 SQL Server和My SQL某些T-SQL用法的区别
1、设置初始流水号,比如设置某一列的各个依次为1、2、3、4、5...... ;在SS中是IDENTITY(1, 1),而在MS写法是auto_increment2、修改表中列的数据类型,在SS中是ALTER TABLE students01 ALTER COLUMN Id SMALLINT,而在MS中写法是ALTER TABLE students01 MODIFY Id SMALLINT
2015-08-03 17:54:52
1948
原创 以图片为背景在其上添加组件不被覆盖
import java.awt.*;import javax.swing.*;public class Why extends JFrame{String str = "E:\\图片\\ps\\bg3.jpg";MyPanel mp1 = new MyPanel();JLabel jl1 = new JLabel("hello");JLabel jl2 = new
2015-06-09 21:35:29
3344
转载 Mark:SQL Server 存储过程
Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用。当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句。这样就可以提高存储过程的性能。Ø 存储过程的概念 存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行。 存储过程中可
2015-05-31 21:25:05
455
转载 Mark:SQL Server关于CAST和CONVERT的区别和用法
SQL中的cast 和convert都是用来将一种数据类型的表达式转换为另一种数据类型的表达式。CAST 和 CONVERT 提供相似的功能,只是语法不同。在时间转化中一般用到convert,因为它比cast多加了一个style,可以转化成不同时间的格式。一、语法: 1、使用 CAST CAST ( expression AS data_type )
2015-05-31 19:47:31
483
MySQL Employees Sample Database
2018-08-16
JAVA编程思想练习答案(完整版)
2015-05-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人