自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL-MVCC

当事务对记录就行修改时,都会将修改的过的数据放入undolog中,然后用roll_pointer来指向之前的旧值,更新修改的次数多了,就会形成一个链表,这个链表就是版本链。trx_id>=max_tra_id:说明生成该版本的事务是在当前事务生成readview之后才开启的,所以该版本无法被访问。trx_id=creator_trx_id:代表该版本是当前事务生成,她正在查看自己修改的记录,所以该版本可以被访问。min_trx_id:m_ids中值最小的事务id。m_ids:当前活跃事务的事务id列表。

2024-02-29 10:08:29 337

原创 MySQL-事务(简单易懂)

在一个事务按照某些条件读取到一些记录但还未提交时,另一个事务按照条件写入了一些数据(写入可以是插入、删除、修改操作)。两个事务对同一个记录的操作,是按照一定的顺序执行,彼此之间互不干涉。一个事务读取到了另一个事务修改了但未提交的记录。事务最终对数据的操作,是持久化的保存在磁盘中的。一个事务修改了另一个事务修改了但未提交的记录。一个事物的操作要么全部提交,要么全部回滚。一个事务修改了另一个事务未提交的读取记录。在事务中,要保证数据库的完整性不被破坏。

2024-02-28 14:42:04 382

原创 MySQL-redo log 和 undo log(简单易懂)

系统会在内部维护一个全局变量,当我们需要分配事务id时,都会把这个全局变量赋值给事务id,并且自增1.每当这个全局变量变成256的倍数时,我们就会赋值给一个MAX TRX ID的属性,当下一次启动的时候,系统就会把这个属性加上256赋值给上面的全局变量。当我们在进行删除的时候,会根据记录的next_record指针生成一个全新的链表,但是这个链表所占用的空间可以被重新利用,所以被称为垃圾链表,page_free指向垃圾链表的头节点,当我们删除一条记录时,他都会插入到垃圾链表的头节点。

2024-02-27 14:39:00 311

原创 MySQL-缓冲池 buffer pool

我们为了缓存磁盘中的页,在数据库服务启动时会向操作系统申请一块连续的内存空间,大小为128M,我们也可以修改启动被配置innodb_buffer_pool_size来自定义大小,而bufferpool申请的空间被分为若干个页面,这些页面被称为缓冲页,为了方便控制这些缓冲页,有设置了与之相对应的控制块。缓冲页的作用:当我们在进行第一次查询后,会从磁盘中读取相对应的页放到缓冲池中,然后复制页放到缓冲页中,当我们再次查询的时候,如果数据在缓冲页中,查询的速度就会非常快,因为我们不要在从磁盘中取数据。

2024-02-27 10:11:14 731

原创 MySQL-索引

我们可以看出叶子节点存储的是所有的数据,而非叶子节点存储的是主键和pageNo,上面的每个页中蓝色的代表,page页头记录信息中的recpord_type记录类型,其中0代表用户要存储的记录,1代表非叶子几点的目录项记录,2代表infimum记录,3代表supremum记录,可以参考之前写过的page博客,黄色的代表next_record指针,浅色代表数据记录。当我们要插入一个新的目录项记录页时,我们要确保它除了页号字段的唯一性,所以我们会将C2+C1建立一个联合索引方便查询。2、叶子节点都是有序的。

2024-02-26 15:52:03 402 1

原创 MySQL-Page(页)

介绍Page页之前我们先来说一下页主要用来干什么?每当我们进行一次查询的时候,实际上就是一次IO的过程,因为数据库数据是存储在磁盘当中,所以我们在进行大量查询的时候,因为IO次数太多,所以速度会超级慢,所以Page就出现了。但是Page(页)为什么会增加查询速度呢?

2024-02-23 14:51:16 681

原创 双亲委派机制(简单易懂)

负责加载用户自定义路径下的类包。

2024-02-22 14:44:37 195 1

原创 史上最全23种设计模式最详细介绍

例子:公司领导一般都是项目经理、副总经理、总经理、财务、财务主管、董事长、技术主管,这里每个人都是一个能处理请求的对象,但是有些请求就只能一个对象来处理,就比如说当有一个面试者来面试的时候,项目经理先接受面试的请求,但是发现自己没办法面试,所以交给技术主管,技术主管发现自己能面试,所以这个请求指挥到技术主管这里,而这个链就是责任链。就是当我们在创建一个A类之后,又创建了不同状态类B、C、D都实现接口E,当我们在A类中引入接口E,当我们在传入BCD三个不同的类时,A类的行为是不一样的这就是状态模式。

2024-02-22 10:22:21 1881

原创 HashMap源码解析

第三种情况,就是p点属于链表时,p.next代表p节点后面链表的第一个节点为null时,直接采用链表的方式插入,当binCount>=TREEIFY_THRESHOLD-1,TREEIFY_THRESHOLD是什么呢,我们应该记得当链表长度大于8时就会尝试转换成红黑树,而TREEIFY_THRESHOLD就是常量8,为什么说尝试呢,其实我们从源码中可以看出来。第二种情况,就是当我们的p节点属于红黑树时,主要就是对我们传入的值进行红黑树相关逻辑的判断,之后会出一章详细介绍插入红黑的文章。

2024-02-21 11:07:07 699 2

空空如也

空空如也

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

TA关注的人

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