随笔- 38  文章- 1  评论- 0  阅读- 15663 
07 2022 档案
MySQL的优化
摘要:表字段的类型设计 字符串 char 定长字符串 如 char(8) 低于8个,剩下的用空格填充,高于8个,报异常 varchar 不定长字符串 如 varchar(8)低于8个,经历收缩过程,变为实际大小.高于8个,报异常 如果字段长度固定,选用char,不固定,选用varchar 姓名: varc 阅读全文
posted @ 2022-07-31 14:16 小北呦 阅读(36) 评论(0) 推荐(0) 编辑
SpringBoot为什么是默认单例的:
摘要:好处: 1)提升性能,减少了新生成实例的消耗 新生成实例消耗包括两方面,第一,spring会通过反射或者cglib来生成bean实例, 其次,给对象分配内存也会涉及复杂算法,这些都是消耗性能的操作. 2)减少垃圾回收 因为不会给每个请求都新生成bean实例,所以回收的对象也少了. 3)可以快速从缓存 阅读全文
posted @ 2022-07-31 14:15 小北呦 阅读(507) 评论(0) 推荐(0) 编辑
Mysql的驱动表 被驱动表 join buffer
摘要:1.为什么小表驱动大表: for(int i=5;.......){ for(int j=1000;......) {}} 1.1如果小的循环在外层,对于数据库连接来说就只连接5次,进行5000次操作,如果1000在外,则需要进行1000次数据库连接,从而浪费资源,增加消耗。这就是为什么要小表驱动大 阅读全文
posted @ 2022-07-30 17:42 小北呦 阅读(897) 评论(0) 推荐(0) 编辑
java的内存泄露是什么,怎么解决
摘要:内存泄露 当一个对象已经不需要再使用本该被回收时,另外一个正在使用的对象持有它的引用从而导致它不能被回收,这导致本该被回收的对象不能被回收而停留在堆内存中,这就产生了内存泄漏。时会出现内存持续上升的情况,容易导致内存溢出(OOM)。 在Java中,内存泄漏就是存在一些被分配的对象,这些对象有下面两个 阅读全文
posted @ 2022-07-28 10:41 小北呦 阅读(1355) 评论(0) 推荐(0) 编辑
使用MongoDB做评论的原因是什么?
摘要:1.加载大量低价值的业务数据 数据量大 但自身价值比较低 。 例如我们更多的是关注文章本身内容 而不是数据量庞大的评论内容 2.评论的读写操作频繁 查询评论和发表评论 3.又因为评论本身的价值比较低 所以对事务的要求性不高。 所以mongodb舍弃了事务管理,评论功能又不需要关联查询,所以海量数据的 阅读全文
posted @ 2022-07-27 20:31 小北呦 阅读(684) 评论(0) 推荐(0) 编辑
开发中为什么要使用Redis缓存
摘要:用缓存,主要有两个用途:高性能、高并发: 高并发:mysql单机支撑到2000QPS 就开始容易报警了 如果大量的请求直接打到mysql上 将会引起mysql的宕机 而redis 是k-v式操作 单机支撑的并发量高达几万十几万 单机的承载并发量是mysql单机的几十倍 而且redis自身也有较好的容 阅读全文
posted @ 2022-07-27 11:25 小北呦 阅读(307) 评论(0) 推荐(0) 编辑
高并发问题中 缓存 降级 限流 而限流是怎么实现的?
摘要:在开发高并发系统时,有三把利器用来保护系统:缓存、降级和限流。那么何为限流呢?顾名思义,限流就是限制流量,就像你宽带包了1个G的流量,用完了就没了。通过限流,我们可以很好地控制系统的qps,从而达到保护系统的目的。我将会介绍一下常用的限流算法以及他们各自的特点。 1、计数器算法计数器算法是限流算法里 阅读全文
posted @ 2022-07-26 20:20 小北呦 阅读(88) 评论(0) 推荐(0) 编辑
怎么判断一个对象已经被回收---虚引用
摘要:定义 虚引用是使用PhantomReference创建的引用,虚引用也称为幽灵引用或者幻影引用,是所有引用类型中最弱的一个。一个对象是否有虚引用的存在,完全不会对其生命周期构成影响,也无法通过虚引用获得一个对象实例。 说明 虚引用,正如其名,对一个对象而言,这个引用形同虚设,有和没有一样。 如果一个 阅读全文
posted @ 2022-07-26 12:13 小北呦 阅读(257) 评论(0) 推荐(0) 编辑
Maven的生命周期
摘要:生命周期的定义 Maven的生命周期(lifecycle)是对构建过程进行的抽象。 它包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有的构建步骤。 它将项目整体划分为一个个阶段,按顺序依次执行,也可以指定执行到某个阶段,然后结束。 因为Maven的生命周期是抽象的 阅读全文
posted @ 2022-07-25 22:30 小北呦 阅读(1634) 评论(0) 推荐(1) 编辑
springAOP的动态代理的原理
摘要:springAOP的动态代理的原理 JDK 的基于接口的动态代理: 实现同一接口 利用proxy 和 newProxyInstance , invoke 实现 MyJdkProxy public class MyJdkProxy implements InvocationHandler{ priva 阅读全文
posted @ 2022-07-25 21:45 小北呦 阅读(37) 评论(0) 推荐(0) 编辑
explain的基本使用介绍
摘要:在进行mysql操作的时候,主要是crud. 更主要的是进行查询的操作.在开发工作过程中往往会遇到慢查询,导致整个程序很慢.这个时候就需要开发人员进行慢查询的分析.这个过程比较漫长,需要一步步排查,分析,解决.那么该如何分析一个查询语句是否合理,就需要借助一个工具,就是explain,通过使用exp 阅读全文
posted @ 2022-07-23 21:41 小北呦 阅读(205) 评论(0) 推荐(0) 编辑
spring事务失效的几种场景以及原因 spring事务传播机制
摘要:1.抛出编译异常 ,事务只能捕捉运行时异常和error 解决方案: 配置rollbackFor eg. 配置@Transactional(rollbackFor = Exception.class) 2.选用了错误的事务传播机制 例如 @Transactional(propagation = Pro 阅读全文
posted @ 2022-07-23 13:16 小北呦 阅读(476) 评论(0) 推荐(0) 编辑
Spring Cloud OpenFeign 的基本工作原理
摘要:背景 OpenFeign 是 Spring Cloud 家族的一个成员, 它最核心的作用是为 HTTP 形式的 Rest API 提供了非常简洁高效的 RPC 调用方式。 如果说 Spring Cloud 其他成员解决的是系统级别的可用性,扩展性问题, 那么 OpenFeign 解决的则是与开发人员 阅读全文
posted @ 2022-07-21 22:27 小北呦 阅读(398) 评论(0) 推荐(0) 编辑
Java建造者模式(项目中遇到的)
摘要:使用场景:比如有一个类,有40个属性字段,然而这些属性字段并不是必须的,我们可以随意组合给这些属性赋值,那么我们可以采用两种方式。 1.构造函数。明显这种方式会出现无数的参数组合,肯定不行 2.实例化单独赋值。实例化一个对象之后单独给每个属性赋值。这种方式是可以的,只是代码量还是比较大。 那么我们还 阅读全文
posted @ 2022-07-12 20:19 小北呦 阅读(25) 评论(0) 推荐(0) 编辑
阿里canal简介
摘要:1. 什么是canal我们先看官网的介绍 canal,译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。 这句介绍有几个关键字:增量日志,增量数据订阅和消费。 这里我们可以简单地把canal理解为一个用来同步增量数据的一个工具。 canal的工作原理就是 阅读全文
posted @ 2022-07-12 11:32 小北呦 阅读(1966) 评论(0) 推荐(0) 编辑
分布式事务TCC
摘要:核心思想 是:针对每个操作,都要注册一个与其对应的确认和补偿(撤销)操作。分为三个阶段: Try 阶段:主要是对业务系统做检测(一致性)及资源预留(准隔离性) Confirm 阶段:主要是对业务系统做确认提交,Try阶段执行成功并开始执行 Confirm阶段时,默认Confirm阶段是不会出错的。即 阅读全文
posted @ 2022-07-12 11:14 小北呦 阅读(456) 评论(0) 推荐(0) 编辑
Mybatis的一级缓存与二级缓存
摘要:1 查询缓存 1.1 什么是查询缓存 mybatis提供查询缓存,用于减轻数据压力,提高数据库性能。 mybaits提供一级缓存,和二级缓存。 一级缓存是SqlSession级别的缓存。在操作数据库时需要构造 sqlSession对象,在对象中有一个(内存区域)数据结构(HashMap)用于存储缓存 阅读全文
posted @ 2022-07-08 22:11 小北呦 阅读(1079) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示