自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 性能提升利器——缓存

一、概述在用户请求的整个链路上处处都能见到缓存的身影。客户端浏览器有缓存,前端CDN静态资源有缓存,后台服务有本地缓存和分布式缓存,数据库有查询缓存,操作系统对磁盘数据有页缓存,CPU对内存数据有高速缓存。如果从源头去获取一个东西代价比较高,那么把它搬到一个更容易获取的地方,之后从这个地方获取更高效,这是缓存解决问题的本质。二、数据一致性缓存有像反范式化数据库设计一样的问题:重复数据,有多个地方需要更新数据,所以要保证数据一致性,避免脏读。写时更新在更新原始数据的同时更新缓存,下次访问的缓存数据就

2021-01-21 09:59:51 180

原创 MySQL锁机制

一、锁的作用二、锁分类1.表级锁a.读锁b.写锁2.行级锁a.共享锁b.排他锁c.间隙锁d.行级锁加锁过程三、死锁分析

2021-01-11 22:13:07 195

原创 Spring IOC源码浅读

一、简述关于spring的介绍很多,它已经发展成了一个很大的家族了,然而它最原始并且最核心的功能是它的IOC/DI功能,用来帮助我们管理Java对象的,任何项目都可以从spring ioc中受益。我阅读了一下spring ioc相关源码,并记录在这篇文章中。二、BeanFactoryBeanFactory,顾名思义,就是负责生产Bean并且管理Bean的一个Factory,IOC的核心主要就体现在这个类上。先看下它的类图,继承体系十分庞大。如果没有阅读过spring源码,初次看这张图是比较复杂的,但

2021-01-06 19:48:35 238

原创 Mybatis源码浅读

二、一般我们会使用@MapperScan注解,标识指定包下Mapper接口需要自动生成代理对象,@MapperScanner需要加在配置类上。启动类Application本身就是一个配置类,所以也可以把@MapperScan加在启动类上。spring容器在启动过程中(启动逻辑详见AbstractApplicationContext.refresh方法),会调用 BeanFactoryPostProcessor接口方法,BeanDefinitionRegistryPostProcessor是BeanFac

2020-12-29 22:03:58 221 2

原创 常见限流方案

一、概述当系统的访问量增大的时候,一般会往这么几个方向上去优化:缓存,扩容,降级,限流。这里将聊一聊限流,限流其实可以看做是服务降级的一种实现。当请求超过系统的负载后,多余的请求做降级处理,怎么降级呢?就是限流,直接快速失败,不进行业务处理。现实生活中也有这种思想,比如高速公路车流量很大的时候,会将高速公路入口关闭,或者每隔一段时间放行一定的车辆,防止大量车辆进入给交通带来更大的压力,这就是一种限流的思想。二、固定窗口三、滑动窗口四、漏桶算法五、令牌桶算法六、漏斗算法七、RateLimiter

2020-12-03 20:43:30 1414

原创 理解G1垃圾收集器

一、G1简介G1是jdk7推出的垃圾收集器,是jdk9之后的默认收集器,相当先进。相比大家所熟知的垃圾收集器例如serial,serial old,parnew,parallel scanvenge,parrallel odl,cms,G1有如下特点:并行与并发serial old与parrallel old在收集老年代时,在gc工作过程中需要STW(stop the world),执行并发标记,这个阶段往往是很耗时的,而G1可以在这个环节让gc线程与用户线程并行,这个特点类似CMS,但是两者的实现却

2020-11-19 23:39:20 2419 4

原创 如何扩展MySQL

一、什么是可扩展性单台MySQL的服务能力终归是有限的,当单台机器服务不过来时,就需要对MySQL进行扩展。高性能mysql中对可扩展性的定义:可扩展性是当增加资源以处理负载和增加容量时系统能够获得的投资产出率。也就是说想要提升同等的性能,需要投入相应数据量的资源,越到后面,提升性能的性价比越低。在不同的场景下,选择最合适的扩展方案,能够获得更大的性价比。下文将介绍几种常见的扩展思路。二、提升硬件单节点扩展意味着购买更加强悍的硬件设备,以提高该机器上运行的软件的性能,更多更好的CPU,更大的内存,更快

2020-11-18 23:09:20 621

原创 分布式ID生成策略

一、概述当数据达到一定规模,单个Mysql服务器无法容纳时就需要做数据分片,这时候插入数据就能不再使用Mysql自增主键了。分布式ID就是生成一个全局的唯一ID,可以解决数据分片唯一ID的问题。二、需要三、UUIDUUID是唯一的,可以直接本地生成,性能高,不用专门的分布式ID服务,没有网络开销。但是UUID是16字节的,而且无序,对于Innodb引擎来讲,并不适合作为表的主键。四、Redis通过Redis的原子自增方法可以实现分布式ID,但是需要注意开启AOF持久化,并且每次执行指令都要持久化

2020-10-29 08:23:23 278

原创 MySQL复制

一、复制概述复制解决的问题是让一台Mysql服务器的数据与另一台服务器保持同步。一台主库的数据可以同步到多台备库上,备库本身也可以配制成另外一台服务器的主库。复制不仅有利于构建高性能的应用,同时也是高可用性、可扩展性、灾难恢复、备份以及数据仓库等工作的基础。二、复制原理1.复制方式基于语句Msql5.0之前只支持基于语句的复制。主库会记录那些造成数据更改的查询,备库读取并重放这些事件,将这些sql在执行一遍。这种方式的优点有:一、实现简单。二、binlog更加紧凑。缺点有:对于一些依赖系统环境的查

2020-10-25 17:55:49 137 1

原创 Mysql-InnoDB事务机制

一、概述二、事务特性三、事务原理原子性持久性隔离性一致性事务执行流程

2020-10-19 22:59:18 342

原创 Java8新特性lambda表达式与Stream

一、概述二、特性三、继承结构四、常用操作先创建一些数据用于举例public class Student { private Long id; private String name; private Integer age; private String desc;} private static List<Student> getStudent(){ Student zhangsan = new Studen

2020-10-02 23:31:29 411

原创 Mysql查询优化

一、概述查询优化是一个非常大的话题,它可以从表设计,索引,查询技巧等多个方面去讨论,对于表设计,索引已经有专门的文章介绍(Mysql高效索引策略, Mysql库表设计优化)。本文将介绍查询优化的思路和一些实用的查询优化策略。二、如何执行查询1、整体流程1.客户端发送查询请求给服务器。Mysql客户端/服务端通信协议时半双工的,任意一个时间点,只有一方发送数据,发送请求后就只能等待结果;另一方接收数据,只有接受完数据才能响应结果。客户端使用一个单独的数据包发送给服务器,当查询语句超出max_allo

2020-09-24 23:26:44 195

原创 Mysq索引优化

一、概述索引是存储引擎用于快速找到一行记录的拥有特定数据结构的文件。本篇讨论的主题就是如何高效的使用索引。关于索引的底层原理可以参考二、索引类型三、高效索引策略1.索引的选择性2.索引覆盖3.索引排序4.深度分页四、总结...

2020-09-20 16:33:14 147

原创 Mysql库表结构优化

一、数据类型1.够用就好遵循够用就好的原则,选择能够容纳数据的最小数据类型。比如设计一张表一般都会有is_delete字段,该字段一般就0和1两个取值,用TINYINT绰绰有余。2.简单最好遵循简单原则,选择能够容纳数据的最简单的数据类型。比如id用BIGINT而不用VARCHAR,使用Mysql自带的DATETIME来存储时间,而不是VARCHAR。3.尽量不为NULL对于NULL的列,在Mysql中会特殊处理。在建立索引时,更应该避免使用NULL,可以选择给出一个默认值。4.尽量用精确数值

2020-09-17 23:55:33 185

原创 Mysql索引原理浅析

一、什么是索引在现实生活中有很多地方用到了的索引思想,比如省市区县行政区域的划分,比如字典的目录,比如超市里商品的分类陈列,等等。回想一下你是如何查字典的,当你想看一个汉字的详细解释的时候,你不是一页一页的翻从一千多页中找到这个字吧?那样太低效费时了,在目录中根据拼音可以很快知道这个字在第几页,这样直接翻到对应的页就能找到这个字了。汉字预先按拼音归类整理成目录,在查字时就可以快速找到某个汉字。这就是一种典型的索引思想。现在回到计算机的世界里,...

2020-09-15 21:00:49 201

空空如也

空空如也

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

TA关注的人

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