自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zhendong_Z

Self-discipline to make life more beautiful!

  • 博客(21)
  • 收藏
  • 关注

原创 SQL慢查询优化之联表查询

一、前提基础 #1、关联查询 ##MySQL 表关联的算法是 Nest Loop Join,是通过驱动表的结果集作为循环基础数据,然后一条一条地通过该结果集中的数据作为过滤条件到下一个表中查询数据,然后合并结果。2、驱动表定义: ##制定了联接条件时,满足查询条件记录行数少的为驱动表;未指定联接条件时,行数少的表为驱动表。(划重点!!!)。 对驱动表可以直接排...

2018-04-24 15:04:08 3091 1

原创 maven依赖机制及依赖管理

maven依赖机制及依赖管理依赖性传递:依赖调解:当项目中出现多个版本构件依赖的情形,依赖调解决定最终应该使用哪个版本。当然,你也可以在项目POM文件中显式指定使用哪个版本。从Maven 2.0.9开始,POM中依赖声明的顺序决定了哪个版本会被使用,也叫作”第一声明原则”。 “短路径优先”意味着项目依赖关系树中路径最短的版本会被使用。例如,假设A、B、C之间的依赖关系是A-&...

2018-04-24 14:57:31 906

原创 SQL慢查询优化之联表查询

一、前提基础1、关联查询:MySQL 表关联的算法是 Nest Loop Join,是通过驱动表的结果集作为循环基础数据,然后一条一条地通过该结果集中的数据作为过滤条件到下一个表中查询数据,然后合并结果。2、驱动表定义:1)制定了联接条件时,满足查询条件记录行数少的为驱动表;2)未指定联接条件时,行数少的表为驱动表。(划重点!!!)。对驱动表可以直接排序,对非驱动表(的字段排序)需要对循环查询的合...

2018-03-19 17:51:27 2046

原创 解决Mybatis PersistenceException,invalid comparison: java.util.Date and java.lang.String

一、前提背景程序执行到查询数据库时报如下错误:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java.lang.IllegalArgumentE...

2018-02-28 17:15:16 1278 1

原创 Mysql Explain 分析

一、EXPLAIN Output ColumnsColumnJson NameMeaningRemarkidselect_id执行编号,标识select所属的行。如果在语句中没子查询或关联查询,只有唯一的select,每行都将显示1。否则,内层的select语句一般会顺序编号,对应于其在原始语句中的位置select_typeNone显示本行是简单或复杂select。如果查询有任何复杂的子查询,则最...

2018-02-28 10:43:41 1016

原创 Git合并两个远程代码库

一:前提:公司新项目基于老版本代码库迁移过来,在此基础上开发新的功能和改版,老版本代码由另一个团队继续维护,新版本需要将老版本后续更新的一些内容合并过来。二、需求:有两个远程代码库(两个代码库都是基于同一个版本进行后续功能开发),现在要将两个代码库的新更新的内容进行合并,同时合并后保留两个代码库的提交历史。三、解决思路:将其中一个代码库伪装作为远程分支,与另一个代码库进行合并。

2018-01-27 12:41:30 2420

原创 解决Parameter '__frch_item_0' not found. Available parameters are [list]

业务场景:使用mysql+mybatis进行批量插入时报出如下错误:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter '__frch_item_0' not found. Available parameters a...

2018-01-27 12:30:50 13409 3

原创 关于一次ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction的解决办法

事情前提:今天在自己本地调试代码的时候,一条普通的插入语句无法执行成功,将SQL语句手动执行,数据库一直显示处理中,最后好久才报出来ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction,(锁等待超时超过;试着重新启动事务),同样的update语句也执行失败,报了同样的错误。问题排查与处理

2017-10-22 22:38:06 1352

原创 设计模式之单例模式

【设计模式】——单例模式1、定义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。2、单例模式有以下特点:单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。3、单例模式的优点:在内存中只有一个对象,节省内存空间。避免频繁的创建销毁对象,可以提高性能。避免对共享资源的多重占用。可以全局访问。

2017-05-03 17:55:44 272

原创 常用排序算法详解

当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。   快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关

2017-04-04 14:05:56 490

转载 二叉树的常见方法及三种遍历方式 Java 实现

读完本文你将了解到:什么是二叉树 Binary Tree两种特殊的二叉树满二叉树完全二叉树满二叉树 和 完全二叉树 的对比图二叉树的实现用 递归节点实现法左右链表示法 表示一个二

2017-03-27 19:37:45 715

原创 Mysql开发规范

Mysql是目前最流行的关系型数据库管理系统之一,关于一些基本的语法及用法这里就不在说明了,今天主要来说一下mysql的开发规范。1.命名规范(1)库名、表名、字段名必须使用小写字母,并采用下划线分割。(2)库名、表名、字段名禁止超过32个字符。(3)库名、表名、字段名必须见名知意。命名与业务、产品线等相关联。(4)库名、表名、字段名禁止使用MySQL保留字。(保留字列表见

2017-03-13 16:57:11 393

原创 流编辑器sed命令

sed一次处理一行文件并把输出送往屏幕。sed把当前处理的行存储在临时缓冲区中,称为模式空间(pattern space)。一旦sed完成对模式空间中的行的处理,模式空间中的行就被送往屏幕。行被处理完成之后,就被移出模式空间,程序接着读入下一行,处理,显示,移出......文件输入的最后一行被处理完以后sed结束。通过存储每一行在临时缓冲区,然后在缓冲区中操作该行,保证了原始文件不会被破坏。

2017-03-13 11:54:44 372

原创 grep命令

1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。2.格式grep [options]3.主要参数[options]主要参数:-c:只输出匹配行的计数。-I:不区分大 小写(只适用于

2017-03-13 11:36:38 314

原创 类加载器的工作原理

Java类加载器的作用就是在运行时加载类。Java类加载器基于三个机制:委托、可见性和单一性。委托机制是指将加载一个类的请求交给父类加载器,如果这个父类加载器不能够找到或者加载这个类,那么再加载它。可见性的原理是子类的加载器可以看见所有的父类加载器加载的类,而父类加载器看不到子类加载器加载的类。单一性原理是指仅加载一个类一次,这是由委托机制确保子类加载器不会再次加载父类加载器加载过的类。正确理解类

2017-03-13 10:54:55 307

原创 Stream详解

Stream是元素的集合,这点让Stream看起来用些类似Iterator;可以支持顺序和并行的对原Stream进行汇聚的操作;大家可以把Stream当成一个高级版本的Iterator。原始版本的Iterator,用户只能一个一个的遍历元素并对其执行某些操作;高级版本的Stream,用户只要给出需要对其包含的元素执行什么操作,比如“过滤掉长度大于10的字符串”、“获取每个字符串的首字母”等

2017-03-13 10:50:41 542

原创 final关键字详解

根据上下文环境,Java的关键字final的含义存在着细微的区别,但通常它指的是“这是无法改变的。”不想做改变可能出于两种理由:设计或效率。下面让我们从可能使用到final的三种情况:数据、方法和类来讨论一下。一、final数据对于基本类型,final是数值恒定不变;而对于对象引用,final使引用恒定不变。一旦引用被初始化指向一个对象,就无法再把它改为指向另一个对象。然而,对象其自身

2017-02-19 17:32:34 383

原创 org.apache.ibatis.binding.BindingException原因总结

今天遇到mybatis的报错,搞了好久才搞懂,在网上找了好久的相似案例,也没有搞定,先来看下网上常见的解决办法吧,相信也能解决大部分人的报错。排查方法如下:1、mapper接口和mapper.xml是否在同一个包(package)下?名字是否一样(仅后缀不同)?2、mapper.xml的命名空间(namespace)是否跟mapper接口的包名一致?3、接口

2017-02-14 11:24:44 41194 8

转载 Zookeeper入门

Zookeeper是Hadoop分布式调度服务,用来构建分布式应用系统。构建一个分布式应用是一个很复杂的事情,主要的原因是我们需要合理有效的处理分布式集群中的部分失败的问题。例如,集群中的节点在相互通信时,A节点向B节点发送消息。A节点如果想知道消息是否发送成功,只能由B节点告诉A节点。那么如果B节点关机或者由于其他的原因脱离集群网络,问题就出现了。A节点不断的向B发送消息,并且无法获得B的响应。

2017-02-08 21:21:57 503

原创 ssh免密登录

SSH免密登录假设有三台机器A,B,C,从机器A免密登录到机器B和机器C

2017-01-16 18:18:20 695

原创 阻塞队列实现生产者消费者模式

生产者消费者模式是并发、多线程编程中经典的设计模式,生产者和消费者通过分离的执行工作解耦,简化了开发模式,生产者和消费者可以以不同的速度生产和消费数据。这篇文章我们来看看什么是生产者消费者模式,这个问题也是多线程面试题中经常被提及的。如何使用阻塞队列(Blocking Queue)解决生产者消费者模式,以及使用生产者消费者模式的好处。真实世界中的生产者消费者模式生产者和消费者模

2017-01-14 00:07:10 338

空空如也

空空如也

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

TA关注的人

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