摘要:
MySQL如何创建一个好索引?创建索引的5条建议 过滤效率高的放前面 对于一个多列索引,它的存储顺序是先按第一列进行比较,然后是第二列,第三列...这样。查询时,如果第一列能够排除的越多,那么后面列需要判断的行数就越少,效率越高。 关于如何判断哪个列的过滤效率更高,可以通过选择性计算来决定。例如我们 阅读全文
摘要:
为什么MySQL要用B+树?聊聊B+树与硬盘的前世今生 在上一节,我们聊到数据库为了让我们的查询加速,通过索引方式对数据进行冗余并排序,这样我们在使用时就可以在排好序的数据里进行快速的二分查找,使得查询效率指数提升。但是我在结尾同样提到一个问题,就是内存大小一般是很有限的,不可能把一个表所有的数据都 阅读全文
摘要:
场景复现,一个索引提高600倍查询速度? 首先准备一张books表 create table books( id int not null primary key auto_increment, name varchar(255) not null, author varchar(255) not 阅读全文
摘要:
Github 使用示例(https://github.com/cky-thinker/spring-feign-client/blob/master/README.md) 在微服务架构中,如果使用得是SpringCloud,那么只需要集成SpringFeign就可以了,SpringFeign可以很友 阅读全文
摘要:
一.关于Tomcat组成 先上张图: Tomcat组成: 1. Server:代表整个 servlet 容器,如Tomcat,JBoss之类的。 2. Service:它由一个或者多个Connector组成,以及一个Engine,负责处理所有Connector所获得的客户请求。 3. Connect 阅读全文
摘要:
关于TCP三次握手四次分手,之前看资料解释的都很笼统,很多地方都不是很明白,所以很难记,前几天看的一个博客豁然开朗,可惜现在找不到了。现在把之前的疑惑总结起来,方便一下大家。 先上个TCP三次握手和四次分手的图 网上好多都是错的,只能自己画了,一个正确的图的确可以方便理解。 疑问一,上图传递过程中出 阅读全文
摘要:
缓存可以说是加速服务响应速度的一种非常有效并且简单的方式。在缓存领域,有很多知名的框架,如EhCache 、Guava、HazelCast等。Redis作为key-value型数据库,由于他的这一特性,Redis也成为一种流行的数据缓存工具。 在传统方式下对于缓存的处理代码是非常臃肿的。 例如:我们 阅读全文
摘要:
前言 最近在项目中需要和ftp服务器进行交互,在网上找了一下关于ftp上传下载的工具类,大致有两种。 第一种是单例模式的类。 第二种是另外定义一个Service,直接通过Service来实现ftp的上传下载删除。 这两种感觉都有利弊。 第一种实现了代码复用,但是配置信息全需要写在类中,维护比较复杂。 阅读全文
摘要:
hibernate的级联可以说是hibernate最重要的部分,只有深入了解了级联的特性与用法,才能运用自如。 这次讨论一对多的情况,所以就使用博客项目的用户表和博客表作为示例,来一起学习hibernate的级联 基本准备 文件结构: hibernate核心配置文件hibernate.cfg.xml 阅读全文
摘要:
Spring的面向切面 在应用开发中,有很多类似日志、安全和事务管理的功能。这些功能都有一个共同点,那就是很多个对象都需要这些功能。复用这些通用的功能的最简单的方法就是继承或者委托。但是当应用规模达到一定程度时,使用继承或委托将会使应用的结构非常复杂。 面向切面便是解决上面问题的最佳办法。我们把这些 阅读全文
摘要:
归并排序 在一些常用的排序中,归并排序在时间开销上来说可以是排序中的最佳实践之一(时间复杂度=n*log n),今天我们就来看看归并是如何实现的。 归并排序大致可以分为两步: 1、将数组从中间分开,对两边分别排序。 2、将两个有序的数组进行合并。 所以实现归并排序主要也就是解决这两个问题。 下图是归 阅读全文
摘要:
最近在看操作系统的书,在讲到用fork()创建子进程时,有些地方一时迷惑,最终理解,特记录下来。如下: //创建一个子进程;#include "csapp.h" int main() { fork(); printf("hello/n"); exit(0);} //打印出两个hello;不难理解,主 阅读全文
摘要:
最近线上遇到一个问题,客户端发送的tcp报文第一次连接成功后没有数据,第二次连接后正常带数据,第三次又没有数据... 问题排查1:是否有负载均衡,其中有一台机器出现了异常,会出现一次成功一次失败的情况 经过排查,本服务是没有负载均衡的,排除 问题排查2:抓包分析 根据抓包数据,异常情况时,连接建立后 阅读全文
摘要:
错误原因:Mysql版本过高,将Mysql版本调整到5.7运行成功 阅读全文
摘要:
arm系统运行javafx流程 arm架构下的jdk没有自带javafx,需要特殊处理,流程如下: 安装jdk11 注意需要安装azul jdk,oracle的open jdk11实测运行会有问题 https://www.azul.com/downloads/?version=java-11-lts 阅读全文
摘要:
如何估算线程池的线程数 估算线程数有个公式: threadNum = (1 + (ioTime / cpuTime)) * coreNum coreNum:cpu核心数 cpuTime:cpu运转时间,计算方式:注释io操作,mock结果,逻辑执行完的时间 allTime:所有逻辑正常执行的时间 i 阅读全文
摘要:
在分布式的应用中,为了防止单点故障,保障高可用,通常会采用主从结构,当主节点挂掉后,从节点可以代替主节点提供服务。 Redis通过复制 + sentinel哨兵来实现主从模式。 Zookeeper通过replicated mode复制模式来实现主从模式。 单从结构上看,Redis和Zookeeper 阅读全文
摘要:
如果SpringBoot没有配置maven的json依赖,默认使用JacksonJson,那么你可以像网上资料介绍的那样进行配置,如下: @Configuration public class WebMvcConfig { @Bean public Converter<String, LocalDa 阅读全文
摘要:
持久层框架:spring data jdbc 版本:2.1.2 报错:java.lang.IllegalArgumentException: After saving the identifier must not be null! 原因: 经过调试发现: 在spring在查找主键属性时(org.s 阅读全文
摘要:
yum -y install ntp ntpdate 1.cn.pool.ntp.org # 根据网络时间校正 tzselect # 选择时区:5Asia->9 China->1->Beijing Time ->1 yes echo 'TZ='Asia/Shanghai'; export TZ' > 阅读全文
摘要:
在mysql的jdbc中开启sql分析,如下: jdbc.url=jdbc:mysql://127.0.0.1/test?useUnicode=true&characterEncoding=UTF-8&useLegacyDatetimeCode=false&serverTimezone=Asia/S 阅读全文
摘要:
Windows git bash 默认没有sudo命令,可以添加win-sudo插件实现该功能 curl -s https://raw.githubusercontent.com/imachug/win-sudo/master/install.sh | sh 如果上面的命令没有用,可以复制https 阅读全文