自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mysql优化

读写分离(数据量比较大)分库分表(数据量大,无法用索引来满足,并且并发量太大,)缓存(经常要查询的数据,每个表比较常用的字段)主从复制。

2024-09-05 10:59:33 76

原创 bufferpool binlog undolog redolog 二阶段提交

数据是需要存储到磁盘上的,是以数据页(16KB)为单位存储。

2024-09-04 15:08:37 162

原创 Mysql事物

多版本(一行数据的版本链)并发(场景)控制(读到的结果)说人话就是:一条数据,我允许,多个事物对他进行修改,并且控制得到的结果undolog&&mysql针对每一行数据都会有两个隐藏字段,事物id和指针(指向上个版本的指针)1.当前事物id2.活跃事物id列表3.最大事物id4.最小事物id根据readview就可以根据版本链判断当前事物哪些可以读哪些不能读在活跃事物列表中的,那就证明这个事物还没有被提交,所以一定不读不在活跃事物列表中的,那就证明该事物已经提交了,所以一定读。

2024-09-04 13:59:33 454

原创 Redis笔记(更新中)

1.基于内存的,不用磁盘io,所以快2.io多路复用,一个线程监控多个socket连接3.单线程,减少上下文线程切换(6.1之后处理和客户端的连接是多线程,但是处理命令是单线程)

2024-09-04 11:25:05 156

原创 MySQL的日志

首先mysql再最开始的时候是不支持事物的,因为他只有binlog可以做数据回放(我要回放昨天12点之前的数据,这个是可以办到的)不支持事物是因为,数据都是存储到数据页中的,事物的修改最终都是要映射到磁盘中的,binlog是办不到的有可能一条update语句,影响了三行数据页,binglog只能记录哪一行数据修改了什么,如果update中断了,根本就不知道这3张数据页执行到哪一步了颗粒度不够,所以不支持事物。

2024-09-04 10:28:04 280

原创 java反射

这里就不用官方的话来回答了,用简洁的话概括,动态的加载对象。

2024-09-02 16:03:29 187

原创 MySQL索引

联合索引中的字段,不是全局有序,是局部有序,只有确定前面的字段顺序后,后面的字段才会有序在联合索引查询的时候,没有满足最左匹配原则的情况下,还是用到了索引(虽然索引目录是乱的,但是也比全文检索强)

2024-08-30 15:21:12 317

原创 深度了解各种锁(更新中)

1. synchronized是基于JVM实现的,是java的一个关键字,可以修饰方法、对象、代码块,但是锁得都是对象;2. 底层是mutix互斥变量;3. 加锁:monitor enter 释放锁:monitor exit;4.不可以手动加锁释放锁;5.1.6之前是一个重量型锁,效率慢,因为线程一旦抢不到锁,会阻塞状态(睡觉),并且会有死锁的情况。1.6之后进行了优化,锁升级;6.是一个非公平锁并且可重入,不能指定等待时间1.基于JDK实现的;2. 可以手动加锁和释放锁(lock());

2024-08-15 18:04:09 328

原创 JAVA集合框架,深度理解List&&Map,面试聊这些够了

这是空间和时间的权衡最后定下的如果比0.75小,虽然解决了hash冲突,但是扩容的频率会提高,内存的空间会占用较大如果比0.75大,空间虽然解决,但是链表过长,效率会低。

2024-08-13 18:07:15 410

原创 面试必问的线程池,一篇笔记搞定!

首先我们要知道 new线程是有开销的,在栈里面需要开辟空间,针对这种有限的宝贵的资源,我们不能无限的去创建线程,这时候就有一个大聪明提出了线程池这么一个概念了,线程池可以帮我么保管起来,不需要去管什么时候new线程,什么时候销毁和回收。我们只需要往线程池里面提交任务即可。

2024-08-08 17:09:59 184

原创 volatile&&单例模式的理解

当在执行代码的时候,cpu的工作内存会从主存加载到变量进来,当遇到很多的变量都需要进来的时候,因为cpu的工作内存中空间有限,他会将最开始读到的变量写回到主存中,当再次用到这个变量的时候,会重新读取到工作内存,效率会很低。所以就有一个解决方案:他会重新排序,但是他也不是瞎排序,会基于happey-before原则(在不影响代码执行结果的前提下)才会重排序,这样的话就不用重新从主存读到工作内存了,提高效率。原子性就是一批线程执行任务的时候,不会被其他线程所干扰,要么同时成功,要么同时失败。

2024-08-08 14:51:53 400

原创 JVM面试搞懂这些就就够了!

当一个类加载器的到类加载的请求时,他不会第一时间选择自己加载,而是委派到他的父类加载器去加载,如果父类还是加载不了,再继续向上委托,如果最顶端的启动类加载器还解决不了,会再一次向下由自己的子类加载去加载,最后都执行不了的话,就报classNotFindException垃圾就是当一些对象不会被使用,但是还会占用内存空间,那这些对象就是垃圾既然不会被使用的对象就是垃圾,但是如何界定这个对象不会被使用了呢?这里引出两个方案。

2024-08-07 15:51:12 593

空空如也

空空如也

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

TA关注的人

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