自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mybatis源码之ResultSet结果集处理

时序图详细步骤PreparedStatementHandler#query@Overridepublic <E> List<E> query(Statement statement, ResultHandler resultHandler) throws SQLException { PreparedStatement ps = (PreparedStatement) statement; // 执行SQL ps.execute();

2021-08-30 19:50:25 1942

原创 SpringBoot多租户业务的多数据源动态切换解决方案

数据源切换方法Springboot提供了AbstractRoutingDataSource抽象类,让用户可以选择当前的使用数据源该类提供了一个抽象方法determineCurrentLookupKey(), 切换数据源时springboot会调用这个方法,所以数据源切换只需要实现该方法,在该方法中返回需要切换的数据源名称即可源码解读1.从类关系图中可以看出AbstractRoutingDataSource类实现的是DataSource方法(非最底层), 其要求实现一个方法getConnecti

2021-08-28 20:12:56 3035

原创 【Redis 系列】redis 学习,redis 的哨兵模式详解和实战

我们知道主从复制是这样搭建的主机可以读,可以写从机只能读,不能写想一想,那么我们是不是也可以这样呢?多个 redis-server 首尾相连那么咱们部署的时候就是 6379 – 6380 – 6381此时,若主机 6379 宕机掉,6380 会不会变成主机呢?127.0.0.1:6379> info replication# Replicationrole:masterconnected_slaves:1slave0:ip=127.0.0.1,port=6

2021-08-27 14:04:48 621

原创 【Spring Boot 快速入门】Spring Boot集成Druid数据监控

前言  Druid Spring Boot Starter 用于帮助你在Spring Boot项目中轻松集成Druid数据库连接池和监控。本文将结合Spring Boot集成Druid,进行数据源监控。初识Druid  Druid是阿里开源的一个JDBC应用组件, 其包括三部分:DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系; DruidDataSource 高效可管理的数据库连接池;SQLParser SQL语法分析;Druid是Java语言中最好

2021-08-26 13:41:28 364

原创 SpringBoot实现RESTful服务接口

在实际使用SpringBoot开发项目的过程中,后端服务经常会遇到跨模块访问的需求,这就需要我们的服务接口有同一的开发规范,这样在跨模块调用时才能更方便、高效。而Spring Boot也为我们创建Web服务提供了非常强大的组件化支持,简单而方便,我们一起来看一下。RESTful服务在当下的分布式系统及微服务架构中,RESTful风格是一种非常流行的Web服务表现方式,RESTful,即Representational State Transfer,表述性状态转移,其本质上只是一种架构风格而不是一.

2021-08-24 13:43:28 4329 2

原创 Mybatis源码之创建SqlSession对象

时序图详细步骤DefaultSqlSessionFactory#openSessionFromDataSource/** * 从数据源中获取SqlSession对象 * @param execType 执行器类型 * @param level 事务隔离级别 * @param autoCommit 是否自动提交事务 * @return SqlSession对象 */private SqlSession openSessionFromDataSource(ExecutorType

2021-08-23 13:48:02 274 1

原创 【MySQL】MySQL索引深入剖析

索引是用来加快SQL执行速度的,那为什么索引可以加快检索速度呢?一、索引基础1.1 概念数据库索引,是数据库管理系统(DBMS)中一个排序的数据结构,以协助快速查询、更新数据库表中数据。剖析:索引是一种数据结构,用来加快SQL执行速度1.2 索引类型在MySQL中索引有这3种类型:普通索引 唯一索引(主键索引也是唯一索引) 全文索引1.3 如何新建索引?alter table test add index idx_name(name1,name2);二、索引数据结构.

2021-08-21 20:40:41 272

原创 Redis 缓存有哪些淘汰策略?

在Redis中,内存的大小是有限的,所以为了防止内存饱和,需要实现某种键淘汰策略。主要有两种方法,一种是当Redis内存不足时所采用的内存释放策略。另一种是对过期key进行删除的策略,也可以在某种程度上释放内存。Redis采用的默认内存释放策略是noeviction-不删除,达到最大内存时,如需更多内存(存入数据),则操作报错;默认的过期key删除策略则是惰性删除+定期删除的方案;1 Redis内存淘汰策略Redis的maxmemory参数用于指定 Redis 能使用的最大内存,既可以在 red

2021-08-20 19:49:24 2441

原创 大厂面试必问:如何设置Java线程池大小?

一、什么是线程池?线程池: 是指在初始化一个多线程应用程序过程中创建一个线程集合,然后在需要执行新的任务时尽可能重用这些线程而不是新建一个线程。二、线程池种类介绍1. 线程池种类介绍——Executors1.1 newFixedThreadPool()newFixedThreadPool():固定线程数的线程池public static ExecutorService newFixedThreadPool(int nThreads) { return new ...

2021-08-20 14:28:01 628

原创 用了redis一定可以保证原子性吗

概念什么原子性?程序在执行过程中,要么全部都执行,要么全部都不执行,不可能执行了一半,滞留了一半。我们知道redis是IO多路复用模型,即一个线程来处理多个TCP连接,这样的好处就是,即使客户端并发请求,也得排队处理,一定程度上解决了多线程模型带的并发问题,所以redis是并发安全的?从redis本身的架构模式来说,并发是安全的,不存在同时执行两个客户端的命令。但是如果因为某些业务场景用的有问题,那么即使是单线程的redis也无能为力。库存问题假设现在redis有个叫stock的key,用于存放

2021-08-19 14:24:47 913 2

原创 JVM 有哪些垃圾回收算法?

JVM垃圾回收算法标记-清除算法该算法分为“标记”和“清除”阶段:首先标记出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象。也可以反过来先标记所有不需要被回收的对象,标记完成以后回收没有被标记的对象。优缺点:执行效率不稳定,适用于对象存过较多的区域,适用于老年代会产生内存碎片何为清除?标记清除并不是真的置空,而是把需要清除的对象地址保存在空闲的地址列表里。下次有新对象需要加载时,判断垃圾的位置空间是否够,如果够,就存放。复制算法将可用内存分为大小...

2021-08-18 13:51:46 1372 4

原创 Java并发编程系列-Synchronized 和显示锁 Lock 的实现原理

1. Synchronized 字节码分析前面我们已经知道了 Synchronized 在使用的时候有两种方式,一种修饰方法,一种是同步块的方式。示例:1public class SyncDemo { public synchronized void a() { // } public void b() { synchronized(this) { //code } }}可以看出示

2021-08-17 13:53:35 199 2

原创 Spring Cloud Alibaba 系列之 Gateway(网关)

一、前言Spring Cloud 原先整合 Zuul 作为网关组件,Zuul 由 Netflix 公司提供的,现在已经不维护了。后面 Netflix 公司又出来了一个 Zuul2.0 网关,但由于一直没有发布稳定版本,所以 Spring Cloud 等不及了就自己推出一个网关,已经不打算整合 zuul2.0 了。Spring Cloud Gateway 是 Spring 公司基于 Spring 5.0, Spring Boot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微

2021-08-16 14:47:15 4914 5

原创 SpringBoot + Mybatis系列教程之 CURD 基本使用姿势

mybatis 作为数据的 ORM 框架,在国内的应用市场还是非常可观的,当初刚开始工作时使用 spring + mybatis 进行开发,后来也使用过 hibernate, jdbctemplate, jooq,mybatisplus 等其他的一些框架,就个人使用感触来讲 jooq 的使用姿势和写 sql 差不多,基本上可以会写 sql 的无需额外的培训,立马可以上手;hibernate 最大的特点就是借助方法名来映射 sql 语句,非常有特点,但是当查询条件复杂一些的话,对小白而言就没有那么友好

2021-08-15 19:49:55 614 3

原创 Java超神路——JVM 有哪些垃圾回收算法?

分代收集算法分代收集算法的设计原则:收集器应该将Java堆划分出不同的区域,然后将回收对象依据其年龄(年龄即对象经历垃圾收集过程的次数)分配到不同的区域之中存储。如果一个区域中大多数对象都是朝生夕灭,难以熬过垃圾收集过程的话,那么把它们集中放在一起,每次回收时只关注如何保留少量存活而不是去标记那些大量将要被回收的对象,就能以较低代价回收到大量的空间;如果剩下的都是难以消亡的对象,那把它们集中放在一块, 虚拟机便可以使用较低的频率来回收这个区域,这就同时兼顾了垃圾收集的时间开销和内存的空间有效利用。标

2021-08-13 13:53:56 171 2

原创 springboot之全局异常处理和统一响应对象

一、springboot异常处理1.SpringBoot 默认的异常处理机制默认情况,SpringBoot 提供两种不同响应方式 一种是浏览器客户端请求一个不存在的页面或服务端异常时,SpringBoot默认会响应一个html 另一种是使用postman等调试工具请求不存在的url或服务端异常时,默认返回json信息 2.SpringBoot 全局异常处理一般我们不会将错误信息返回前端,自己去try catch捕获异常,但有个问题:每个方法都这样捕获异常,肯定是不

2021-08-12 14:32:42 496 2

原创 MySql系列:正则表达式和数据过滤

引言鼓励有时比压力要重要!在学习的过程中,很多时候我们听到的都是,你要怎样,怎样,你瞧瞧谁谁谁,哪怕今天听不到这样的声音了,但因为曾经反复听到过而导致内心抗拒。虽然也知道自己要去学,但是很难坚持,学着学着就没有了方向,看到还有那么多不会的就更慌了,以至于最后心态崩了,更不愿意学。其实程序员的压力并不小,想成长几乎是需要一直的学习,就像似乎再也不敢说精通java了一样,知识量实在是随着学习的深入,越来越深,越来越广。所以需要,开心学习,快乐成长!我们都知道到MySQL可以通过 LIKE ...%

2021-08-11 14:00:32 538

原创 精通Redis系列|字符串类型(String)命令详解

字符串类型是Redis中最基本的数据类型,它能存储任何形式的字符串,包括二进制数据,序列化后的数据,JSON化的对象甚至是一张图片。字符串类型的数据操作总的思想是通过key操作value,key是数据标识,value是我们感兴趣的业务数据。1、set 语法:set key value 功能:将字符串值 value 设置到 key 中,如果key已存在,后放的值会把前放的值覆盖掉。 返回值:OK表示成功 2、get 语法:get key 功能:获取

2021-08-10 14:36:21 250

原创 看看Spring如何简化Spring XML配置

本文内容主要介绍了Bean的自动装配、基于注解的配置和基于Java类的配置对XML配置的简化。自动装配Bean的属性当Spring装配Bean的属性时,如果非常明确,则可以使用自动装配模式:自动装配类型手动:使用ref装配 策略:byName 假设属性的名字和bean的名字相同 <bean id="customer" class="xxx" autowire="byName"/><bean id="persion" class="xxx."/> b.

2021-08-09 14:44:12 210 2

原创 深入理解JVM——分区是如何溢出的?

前言​ JVM运行时分区溢出学习JVM必须掌握的一块内容,同时由于JVM的升级换代,JVM的内部分区也在逐渐的变化,比如方法区的实现由永久代改为了元空间这些内容都是需要掌握的,本文将会是一篇关于JVM分区溢出的总结,同样根据两个案例来说下如何排查JVM令人头痛的OOM问题。概述:用图解的方式了解哪些分区会存在分区溢出的问题。 如何用代码来模拟出各个分区的溢出。 用两个案例来讲解分区的溢出是如何排查和解决的。分区结构图简介:​ 在了解分区是如何溢出之前,这里先简单画一个JVM的分区运行图

2021-08-06 14:31:22 247 1

原创 MySQL中的乐观锁和悲观锁具体怎么实现的?

文章介绍对于MySQL中的乐观锁和悲观锁,可能很多的开发者还不是很熟悉,并不知道其中具体是如何实现的。本文就针对这个问题做一个实际案例演示,让你彻底明白这两种锁的区别。相关文章之前针对MySQL中的锁单独分享过一篇文章,对于MySQL锁还不够了解的可以仔细阅读以下该文。锁分类MySQL的中锁按照范围主要分为表锁、行锁和页面锁。其中myisam存储引擎只支持表锁,InnoDB不仅仅支持行锁,在一定程度上也支持表锁。按照行为可以分为共享锁(读锁)、排他锁(写锁)和意向锁。按照思想分为乐观锁和

2021-08-05 15:01:58 3372

原创 深入理解JVM——案例实战(一)

本文概述排查Full Gc的套路是什么,这里用一个电商案例来进行说明。 spilt()方法是如何造成内存泄露的?如何通过可视化图形分析出问题。以及如何从源代码层面发现根本问题思维导图:电商案例-排查Full GC套路主要业务:​ 在日常场景进行发邮箱,短信以及APP 的推送消息一些特别活动。​ 这种业务的特点是短时间之内会有大量的用户进入APP进行参与,这时候系统的压力会突然增加。问题:​ 在业务流量高峰的时候,CPU的使用率十分十分高,并且直接导致系统卡死,无法进行任何

2021-08-04 14:16:00 244

原创 Docker配置华为云镜像加速详细部署过程

1.软件介绍Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口2.支持的操作系统经过华为云严格实测,以下操作系统在鲲鹏生态中可以完整运行Docker的全部功能:CentOS 7.5 EulerOS 2.8 Ubuntu 18.043.docker安装CentOS操作系统3.1 准备环境 安装依赖包执行以下命令安装

2021-08-02 20:12:00 1820

原创 Redis进阶-Redisson分布式锁实现原理及源码解析

前言一、分布式锁的概念和使用场景整理了一张redis知识图谱分享给大家:分布式锁是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证,这个时候,便需要使用到分布式锁。二、将redis官网对于分布式锁(红锁)的定义和Redisson实现做概括性总结该部分可以先粗略的浏览一下,领略其官方的理论定义,读完后续内容会对该环节有更清..

2021-07-31 19:49:12 399

原创 Spring-JDBCTemplate & 声明式事务

Spring的JdbcTemplateJdbcTemplate是什么?JdbcTemplate是spring框架中提供的一个模板对象,是对原始繁琐的Jdbc API对象的简单封装。核心对象JdbcTemplate jdbcTemplate = new JdbcTemplate(DataSource dataSource);核心方法int update(); 执行增、删、改语句List<T> query(); 查询多个T queryForObject(); 查..

2021-07-29 15:42:00 144 2

原创 JDK8 锁机制深度详解——看完再有面试官要拿锁方面的问题来为难你,可以提醒他小心点,别翻车了。

本文故事这是一个面试向的文章,所以我不会讲得太过正统,争取把枯燥的理论知识讲得浅显易懂一点。另外,我会尽量把知识点整理得全面完整,所以篇幅会比较长。但是只要你耐心看完,保证以后不管遇到什么java锁机制方面的问题,都可以玩玩全全游刃有余。下次再有面试官要拿锁方面的问题来为难你,嘿嘿,让他小心点,别翻车。什么是锁?为什么要用锁?只要有资源竞争,就需要有锁。为了引出锁问题,先看下面一段简单的代码:import java.util.concurrent.CountDownLatch;publi

2021-07-28 15:33:41 599

原创 MySQL 是怎样运行的 - InnoDB数据页结构

数据页结构的快速浏览数据页代表的这块16KB大小的存储空间可以被划分为多个部分,不同部分有不同的功能,各个部分如图所示:一个InnoDB数据页的存储空间大致被划分成了7个部分一、记录在页中的存放存储的记录会按照我们指定的行格式存储到User Records部分 一开始生成页的时候,其实并没有User Records这个部分,每当我们插入一条记录,都会从Free Space部分,也就是尚未使用的存储空间中申请一个记录大小的空间划分到User Records部分, 当Free S

2021-07-27 15:00:28 62

原创 mysql进阶系列:mysql中MyISAM和InnoDB有什么区别

一. 面试官:mysql中MyISAM和InnoDB有什么区别1. 存储结构MyISAM:每张表被存放在三个文件:frm-表格定义、MYD(MYData)-数据文件、MYI(MYIndex)-索引文件。Innodb:所有的表都保存在同一个数据文件中(也可能是多个文件,或者是独立的表空间文件),InnoDB表的大小只受限于操作系统文件的大小,一般为2GB。2. 存储空间MyISAM:MyISAM可被压缩,存储空间较小。Innodb:InnoDB的表需要更多的内存和存储,它会在主内存中建

2021-07-26 14:59:50 133

原创 一文读懂Zookeeper数据同步流程

前言在Zookeeper集群中,客户端会随机连接到Zookeeper集群中 的一个节点。如果是读请求,就直接从当前节点中读取数据,如果是写请求,那么请求先会被转发给leader提交事务。然后leader再广播事务,只要有超过半数节点写入成功, 那么写请求就会被提交(类2PC事务)。整个过程如下图所示: 整套数据同步机制是通过ZAB协议实现的,下面我们重点了解一下ZAB协议的实现原理。ZAB协议简介ZAB(Zookeeper Atomic Broadcast) 协议是为Zookeeper专门设

2021-07-26 14:46:27 960

原创 Redis分布式方案及一致性Hash算法精讲

为什么Redis需要分布式高性能我们知道Redis本身的QPS已经很高了,但是在一些并发量非常高的情况下,性能还是会受到影响的。这个时候我们希望更多的Redis服务来分摊压力,实现负载均衡。高可用如果只有一个Redis服务,一但服务发生了宕机,那么所有的客户端都无法访问,会对业务造成很大的影响。另外,如果硬件损坏了,那上面的所有数据也是无法恢复的,我们需要个备份。可扩展第三点是出于存储的考虑,因为redis所有的数据都放在内存中,如果数据量大,很容易收到硬件的限制。比如一台...

2021-07-23 15:18:10 408

原创 这工作不做也罢!因工资被实习生倒挂,怒而离职网易闭关半年,最终逆袭入职阿里!

背景读完名牌高中,之后却只混了个专科学历。没有背景,没有人脉,在网易浑水摸鱼做了三年的Java开发,拿着远远低于市场均价的月薪浑浑噩噩,今天开会时还被领导当众批评了。散会后我回想了一下这三年996的,又看着银行卡上每月8K的进账,心里冒出一个想法:干脆离职吧!但令我没想到的是,离职后我找新工作一找就是半年!意气用事?可能是因为从网易离职的事情,相处了三年的女朋友说我眼高手低,在我身上看不到希望,之后就和我分手了。其实我这样做不算是出于一时的冲动,还是有我自己的理由的。说实在.

2021-07-22 16:28:08 499 14

原创 Spring中Bean的声明周期

1.Bean的一生可以简述为下面9个实例化Bean对象(通过Bean工厂或者构造方法) 设置对象属性(Setter方法注入) 如果Bean实现了BeanNameAware,工厂调用Bean的setBeanName()方法传递Bean的ID。(和下面一条均属于检查aware接口) 如果Bean实现了BeanNameAware,工厂调用setBeanFactory()方法传入工厂本身 将Bean实例传递给Bean的前置处理器postProcessorBeforeInitialization(

2021-07-21 14:43:28 488

原创 LVS+Keepalived+Nginx高可用实现

前言本文搭建LVS+Keepalived+Nignx高可用,搭建之前,先看下以下几种方案架设示意图的演进。方案一起初是一个Nginx服务器,但是当Nginx挂掉后,用户就直接访问不了网站,进而演进第二种方案。方案二这个方案通过Keepalived解决了Nginx主节点挂掉后,从节点的Nginx会启用,实现了双机主备,这样虽然解决了第一种方案的弊端,但是高迸发场景下,一个Nginx承受不住,无论有多少从节点,还是会挂掉,从而演进第三种方案。方案三通过LVS+Keepalived+N

2021-07-20 14:45:58 411

转载 建议收藏!阿里出身大佬传授 98%通过率 面试攻略!手把手教你拿下阿里、腾讯、百度、美团各大厂offer!

这是一位从阿里出来的大佬总结提供的面试攻略。他之前在两个月内一共面试了 五十多场,最终拿了包括美团、滴滴、B站、百度、字节、小米、同程、在内的 8 个大厂 Offer。群内知道后,很多朋友都求他分享经验,于是他就干脆就找上我一起写了一篇博客,进行了比较系统的总结——纯干货,强烈建议收藏起来慢慢看。主要板块包括:目录一、确定目标 二、简历优化 三、面试渠道 四、面试方法论 五、Offer 抉择标准 六、面试的心态调整 七、总结一、确定目标其实这个“确定目标”要做...

2021-07-19 15:11:47 1446

原创 一个大学生的编程问题,差点难倒了我这个老司机

小伙伴遇到的问题前几天群里有个小伙伴,年纪确实小,毕竟还是大学生,非常好学,当然不是妹子~我可是不仅仅喜欢帮助妹子先看他的代码:类的命名,我们就忽略了,毕竟小伙伴是真的在练习和测试。随意起的类名。类Test2类Test2继承JFrame,是的,很古老的Java UI。忽略这个有年代感的类,瞧重点:用Java画了一个窗口,窗口上有个Big Button,铺满窗口的。这个类有一个变量b默认false,并给按钮增加了一个事件,将b修改为true:publicbooleanb...

2021-07-16 14:11:39 477 9

原创 普通院校毕业的Java开发,该怎样进入阿里、字节等一线大厂?需要做哪些准备?

一、序言 最早将入职阿里立为目标是在看了网上的校园宣讲会的时候,那时我就关注到了阿里巴巴。我关注的点是这个公司无论是从愿景、理念、还是薪酬福利,都是我们年轻人心目中渴望的充满活力的样子。但是出身双非院校的我,心中还是没有什么信心。虽然网上各个渠道投了阿里不少简历,但是一直石沉大海,不过当时刚好有一个学长在阿里,于是就联系了那位学长帮我安排内推。我跟那些有“offer收割机”之称的大佬不同,没有拿到那么那么多的大厂offer。从简历的优化到面试准备,我的目标一直都是阿里巴巴的Java...

2021-07-15 14:11:42 666 21

原创 含泪劝告:Java开发程序员从大厂出来后千万别想不开去小公司,不然追悔莫及

职场那点事先讲个在网上看见过一个段子:甲:我应聘上一家中型软件公司了,今天上班的时候,全公司的人都来欢迎我。乙:牛掰啊大佬,都来了哪些人呀?甲:我想想……CEO、COO、CTO、All of 程序员,还有财务、司机。总之,老板说的是都来了。乙:你这待遇也太好了吧,太受重视了吧,这么多人迎接你!甲:没有啊,他们公司就一个人!招聘网站写的是中型公司……乙:?????上面的段子虽然有些夸大的嫌疑,但是同样也反映出一个很真实的情况:在很多创业小公司,一人身兼数职的情形是非常普遍的。我..

2021-07-13 11:17:10 2692 14

原创 一款让你优雅、高效实现文件预览的解决方案

前言项目开发中,很多系统都会涉及到文件操作,比如常见的上传、下载等,这些也都是司空见惯的事情,也比较容易实现。但是有些情况下,需要支持文件的在线预览功能,由于文件格式众多,不同的文件处理方式不同,使得预览显得比较复杂,实现起来也相对困难。本文结合自己的开发实战情况,总结下目前常用的三种模式及利弊关系,重点讲述下公司实现预览的功能代码及服务的搭建过程。常用三种实现方式及优缺点方式一使用officeapps的在线链接方式实现具体为view.officeapps.live.com/op/view.

2021-07-12 09:59:19 514 3

原创 用Docker来解决LetsEncrypt证书失效

前言起因是因为 Let's Encrypt 的管理证书协议 ACMEv1 要在今年废弃掉,导致一台老服务器上的 https 失效。Let's Encrypt 官方推荐的方法是更新到支持 ACMEv2 的 certbot 版本。服务器是Ubuntu 14.04,支持ACMEv2的客户端需要更新到Ubuntu 16.04 ,因为更新系统的不确定性,所以想到了使用 Docker 去解决这个问题。项目结构大概是这样Nginx 做 Node Server 的反向代理,Certbot 用来获取并更新 N

2021-07-09 11:35:30 1334 3

原创 谈谈关于MySQL explain 的详解

当我们写下一条复杂的sql时,不是盲目去执行,选择提前explain分析sql,是一个不错的选择,避免没用到索引或者用到错误的索引导致mysql大量的扫表,造成线上不好的后果。mysql提供的explain命令可以获取select语句的执行计划,通过explain我们可以知道:表的读取顺序,数据读取操作的类型,哪些索引可以使用,哪些索引实际使用了等等。mysql> explain select * from user;+----+-------------+-------+-----...

2021-07-08 13:49:38 205 1

空空如也

空空如也

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

TA关注的人

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