自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Deep Water Slow

菩提本无树,明镜亦非台,本来无一物,何处染尘埃。

  • 博客(47)
  • 资源 (7)
  • 问答 (1)
  • 收藏
  • 关注

原创 Optimizer Trace结果参数说明

的执行计划跟踪,一直是比较欠缺的能力。在仅有这两个索引的情况下,显然b索引的效率更高(实际是b字段的选择率更好),因此在choose部分,b字段索引显示为true。看个具体的示例,执行语句是“select e.*,d.* from emp e left join dept d on (e.deptno=d.deptno)”,如下图所示dept表作为左连接的右侧表,是依赖于左侧的emp表(编号为0)的。针对示例中,b和c字段的索引组合同样进行了评估,并且最终的评估结果还不错,比访问单一索引要小。

2024-07-19 17:30:30 232

原创 深入了解MySQL文件排序

本文我们以文件排序的整体概览开始,抛开实现细节,从全局角度了解了文件排序的整体逻辑。接着介绍了系统变量用于控制排序缓冲区大小,用于控制单个排序字段内容长度。排序模式 把排序字段(sort_key)和存储引擎返回给 server 层的字段都写入排序缓冲区或磁盘文件,每个字段都以其最大长度占用存储空间,存在在空间浪费。

2024-07-17 13:22:51 777

原创 MySQL执行状态查看与分析

很重要的列MyISAMMEMORY线程正在处理语句。此状态发生在创建具有新结构的表之后,但在将行复制到其中之前。对于处于此状态的线程,性能架构可用于获取有关复制操作进度的信息。请参见第25.12.5节“性能架构阶段事件表”。ORDER BYGROUP BYMyISAMSELECT这发生在结束时,但在清除DELETEINSERTSELECT或UPDATE语句之前。对于end状态,可能会发生以下操作:表中的数据更改后删除查询缓存项将事件写入二进制日志释放内存缓冲区,包括BlobDELETE。

2024-07-16 21:32:20 811

原创 Zookeeper源码学习

当选举结束后,每个节点都需要根据自己的角色更新自己的状态。选举出的Leader更新自己的状态为Leader,其它节点更新自己状态为Follower。(3) COMMIT Leader的zxid比Follower的zxid大,发送Proposal给Follower提交执行。(2)当Leader第二种Follower的状态了,就确定需要做何种方式的数据同步DIFF、TRUNC、SNAP。(2)TRUNC Follower的zxid比Leader的zxid大,所以Follower要回滚。

2024-07-15 20:47:10 630

原创 Zookeeper之CAP理论及分布式一致性算法

CAP理论CAP理论告诉我们,一个分布式系统不可能同时满足以下三种这三个基本要求,最多只能同时满足其中的两项,因为P是必须的,因此往往选择就在CP或者AP中。

2024-07-15 13:09:57 968

原创 Paxos算法

第1,Node1在填充1号位置的时候,发现1号位置的值被大多数确定了,比如是X=5(node3占领了1号位置,Node2跟从了Node3),则Node1就接受这个事实:1号位置不能用了,也得把自己的1号位置赋值成X=5。(2)假如要做多机之间数据同步,如果直接同步状态,状态本身可能有一个很复杂的数据结构(比如关系数据库的关联表、树、图),并且状态也一直在变化,要保证多个机器数据一致,要做数据比对,就很麻烦;比如第1种情况,三台机器存储的日志顺序都是X=1、X=3、X=5,在最终集群里,X的值肯定等于5。

2024-07-15 10:06:55 953

原创 ZooKeeper实现分布式锁

【代码】ZooKeeper实现分布式锁。

2024-07-14 21:08:54 242

原创 zookeeper基础知识学习

客户端注册监听它关心的目录节点,当目录节点发生变化(数据改变、节点删除、子目录节点增加删除)时,ZooKeeper 会通知客户端。1)节点的值变化监听get -w /xx注意:在右边的客户端多次修改/dd0000000007的值,左边不会再收到监听。因为注册一次,只能监听一次。想再次监听,需要再次注册。2)节点的子节点变化监听(路径变化)ls -w /xx3)当某个节点创建或者删除的时候。

2024-07-14 10:45:31 478

原创 深入理解 Elasticsearch 分页技术

搜索引擎分页是指在搜索引擎中,将搜索结果分成多个页面展示,用户可以通过点击分页按钮或滚动页面来浏览不同页数的搜索结果。搜索引擎通常会在页面底部显示数字标记或其他标记以提示用户当前的位置和可用的页数。如下所示:搜索引擎分页的目的是提高用户体验,让用户可以更轻松地从大量搜索结果中获取更精准的信息。当用户在搜索框中输入关键字并点击搜索按钮时,搜索引擎将返回与关键字相关的成千上万个搜索结果。如果将所有这些结果显示在一个页面上,页面加载时间会变得非常长,用户体验也会变得糟糕。

2024-07-12 19:16:18 1256

原创 ElasticSearch 深度分页详解

如果数据量小(from+size 在 10000 条内),或者只关注结果集的 TopN 数据,可以使用 from/size 分页,简单粗暴数据量大,深度翻页,后台批处理任务(数据迁移)之类的任务,使用 scroll 方式数据量大,深度翻页,用户实时、高并发查询需求,使用 search after 方式。

2024-07-12 10:56:46 928 1

原创 ElasticSerach7入门与进阶实战笔记整理

CSND资源:https://download.csdn.net/download/java_key_code/89535103

2024-07-12 10:45:01 103

原创 Mysql系列-Binlog主从同步

mysql主从同步,即MySQL Replication,可以实现将数据从一台数据库服务器同步到多台数据库服务器。MySQL数据库自带主从同步功能,经过配置,可以实现基于库、表结构的多种方案的主从同步。可以对MySQL做主从架构并且进行读写分离,让主服务器(Master)处理写请求,从服务器(Slave)处理读请求,这样可以。

2024-07-08 09:37:13 476 2

原创 MySQL之binlog日志

binlog 是什么binlog 配置和查看binlog 的类型binlog 如何恢复数据binlog 是逻辑日志还是物理日志binlog 作用

2024-07-08 07:59:16 786

原创 Spring AOP源码篇四之 数据库事务

【代码】Spring AOP源码篇三之 数据库事务。

2024-07-02 19:10:59 180

原创 Spring AOP源码篇三之 xml配置

/ ...其它代码代码(略)//源码分析:节点1//关键入口if (bean!//源码分析:节点2//源码分析:节点2//源码分析:节点3// 将当前容器中的所以Advisor和当前bean匹配,最后将匹配成功的Advisor列表返回//源码分析:节点4//创建代理对象//源码分析:节点4//创建代理对象。

2024-07-02 16:13:36 424

原创 Spring AOP源码篇二之 代理工厂ProxyFactory学习

ProxyFactory===创建===》AopProxyFactory(默认实现:DefaultAopProxyFactory)===创建===》AopProxy(JdkDynamicAopProxy||CglibAopProxy)AopProxy完成代理对象创建和调用。

2024-07-02 14:48:30 302

原创 Spring AOP源码篇一之 PointCut、Advice、Advisor学习

Spring Aop 之 Pointcut、Advice、Advisor

2024-06-30 00:36:23 743

原创 Spring Bean名称内部生成工具

【代码】Spring Bean名称内部生成工具。

2024-06-29 19:21:58 100

原创 Spring AOP之AspectJ表达式

当采用JDK动态代理时,代理类和目标类没有直接关系, 二者只是实现相同的接口, 如果this表达式指定的是目标类时无法匹配命中。- 匹配参数个数为1的方法,且第一个参数所属的类型上有注解@Service(注意不是参数上的注解,而是参数类型上的注解)* this表示目标对象被代理之后生成的代理对象和指定的类型匹配会被拦截,匹配的是代理对象。* @target关注的是被调用的对象,@within关注的是调用的方法所在的类。* target表示目标对象和指定的类型匹配会被拦截,匹配的是目标对象。

2024-06-29 00:52:20 628

原创 修改final属性值-内联优化

Java 编译器会对 final 修饰且类型为基本类型(byte、char、short、int、long、 float、 double、 boolean、String [直接双引号字符串])属性做内联优化,编译时直接把该 final 的值放到了引用它的地方。即使是反射修改了该属性,但后续使用时还是旧值。只要不被编译器内联优化的 final 属性都可以通过反射有效的进行修改(修改后能使用新的值)

2024-06-28 20:41:00 117

原创 Java Agent【java探针】及AspectJ

Java Agent 又叫做Java 探针,从JDK1.5 开始引入,可在类加载前修改class字节码。Jvm启动参数-javaagent参数 俗称java探针技术(Premain方式)使用方法:-javaagent:xxx.jar, 在main方法执行前查找jar中MANIFEST.MF文件的配置项,Premain-Class对应一个java类,然后执行方法和,如果同时存在,执行前者。AspectJ是一个面向切面的框架(AOP框架)。

2024-06-26 01:51:08 1024

原创 Spring IOC 之 bean创建createBean()源码

spring bean创建过程,bean构造函数匹配过程

2024-06-24 15:37:59 660

原创 Spring IOC 之 xml配置解析过程(BeanDefinition)源码

spring IOC xml解析过程

2024-06-23 06:10:24 994

原创 Spring IOC 之 属性注册编辑器PropertyEditorRegistry源码

spring自定义属性注册编辑器源码执行流程

2024-06-21 22:01:53 964

原创 MyBatis-Spring源码学习笔记

mybatis-spring对应spring配置:配置单个Mapper通过扫描包路配置多个Mapper

2024-06-21 12:26:11 400

原创 MyBatis源码学习笔记

如果元素中包含子元素, 将元素替换为元素,元素refid属性对应元素属性id,从Configuration对象Map sqlFragments获取元素node对象。3】、元素转为Map sqlFragments,key为mapper的命名空间+"."+元素id,value为XNode对象,元素配合使用。

2024-06-19 20:27:39 817

原创 jvm垃圾回收器

比如,在用户线程运行过程中,分一半CPU去做GC,系统性能在GC阶段,反应速度就下降一半。因为在清理阶段,用户线程还在运行,会产生新的垃圾,无法清理。由于并发标记时,用户线程依然运行,因此在正式清理前,再做修正。这两个参数是矛盾的。CMS运行过程比较复杂,着重实现了标记的过程,可分为。因为和用户线程一起运行,不能在空间快满时再清理。使用Parallel收集器+老年代并行。老年代收集器(新生代使用ParNew)标记-清除算法(与标记-压缩相比)主要标记过程,标记全部对象。- 新生代、老年代使用串行回收。

2024-06-19 11:03:47 236

原创 MySQL-explain执行计划笔记

2.6 union: 分union与union all两种,若第二个select出现在union之后,则被标记为union;2.7 dependent union: 当union作为子查询时,其中第一个union为dependent subquery,第二个union为dependent union。表总共5条记录,user_id>=3未走索引,进行的是全表扫描,符合条件的最终结果只有一条,所以rows是5,filered是20(1/5)total_price列无索引,无法通过索引排序。

2024-06-14 13:54:53 810

原创 Spring IOC 源码分析

Spring IOC源码分析源码解读困难点:1、自定义标签解析2、循环依赖3、后置处理器扩展点:1、声明式Aop通过FactoryBean实现2、AspectJ式的AOP通过后置处理器实现3、类注解、类内属性注解通过后置处理器实现...

2019-12-29 16:25:08 160 1

原创 快速排序

快速排序首先选取数组最右侧值作为基准值(轴);排除基准值后,定义两个变量分别指向最左侧数值对应下标(左索引)和最右侧数值对应的下标(右索引)分区步骤:第一步,左索引对应值与基准值比较大小,如果左索引对应值小于基准值,则向右移动左索引;如果左索引对应值大于或等于基准值,则停止第二步,右索引对应值与基准值比较大小,如果右索引对应值大于基准值,则向左移动右索引;如果右索引对应值小于...

2019-12-29 16:03:44 127

原创 《Java编程思想》学习笔记-第5章

《Java编程思想》 学习笔记

2017-11-24 14:11:32 244

原创 文件上传工具类

【代码】文件上传工具类。

2015-10-30 10:01:18 121

原创 C++程序设计原理与实践-中文版

C++程序设计原理与实践-中文版https://www.iteye.com/blog/javakeycode-1736308

2012-11-27 23:41:32 304

原创 生成myeclipse注册码

【代码】生成myeclipse注册码。

2011-07-09 11:09:32 66 1

原创 修改上传按钮样式

[code="java"] 上传[/code]

2011-07-08 12:00:38 135 1

原创 使火狐支持outHTML

【代码】使火狐支持outHTML。

2011-07-06 13:07:53 98 1

原创 自定义国际化类

【代码】自定义国际化类。

2011-07-06 12:57:46 79

原创 文件下载,可解决下载时各种异常及乱码,空格变+号

当用户点击取消按钮时,如何停止上传动作(用户点击取消的一瞬间,服务器端有可能正向文件服务器写入上传的文件,也有可能文件上传已经完成,正调用外部应用程序进行视频格式的转换或获取视频的截图【关键是这第二个可能,就是点击取消按钮的同时将外部程序这个子进程也杀掉】)System.out.println("----------页面跳转时,发生流异常--------------");如何统计上传文件多大及已经上传多少(统计客户端向临时文件写的大小而不是文件服务器)?乱码,特殊符号问题及空格变加号。

2011-07-06 12:45:13 1727 1

原创 解决IE兼容trim()

【代码】解决IE兼容trim()

2011-05-13 10:18:00 106 1

原创 image.jsp

【代码】image.jsp。

2011-05-12 18:03:55 224 1

ElasticSerach7入门与进阶实战学习笔记

ElasticSerach7入门与进阶实战学习笔记

2024-07-12

Java加密与解密的艺术

Java加密与解密的艺术

2016-04-27

JAVA并发编程实践

《JAVA并发编程实践》随着多核处理器的普及,使用并发成为构建高性能应用程序的关键。Java 5以及6在开发并发程序中取得了显著的进步,提高了Java虚拟机的性能以及并发类的可伸缩性,并加入了丰富的新并发构建块。在《JAVA并发编程实践》中,这些便利工具的创造者不仅解释了它们究竟如何工作、如何使用,还阐释了创造它们的原因,及其背后的设计模式。

2016-04-27

深入java虚拟机

深入java虚拟机

2016-04-27

spring中文API

spring中文API

2016-04-27

Spring技术内幕:深入解析Spring架构与设计原理(第2版)

Spring技术内幕:深入解析Spring架构与设计原理(第2版)

2016-04-27

Mycat权威指南

Mycat权威指南

2016-04-27

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

TA关注的人

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