摘要:
关键词: 分段、分页、内存碎片、外存碎片 1、分段&&分页: 分页与分段都是磁盘的存储单位。 (1)分页: ①定义:在内存空间中,将内存空间划分为一个又一个大小相等的基本单位,称为“块”,也称为“页框”。将用户程序的地址空间按照"块"为基本单位划分成若干个大小相等的区域,这一个又一个的区域就称为页。 阅读全文
摘要:
关键词:一致性、隔离性、幻读、 前言: 假设此时事务A和事务B同时执行。 一、事务的定义&&特性: 1、定义: 对数据库进行的一组操作序列,同时这组操作序列必须满足ACID四个特性。 2、事务的特性: ①原子性(Atomic):指对数据库的操作要么全部一起执行,要么全部不执行; ②一致性(Consi 阅读全文
摘要:
推荐一个算法在线演示网站: https://www.cs.usfca.edu/~galles/visualization/Algorithms.html eg:红黑树、 AVL树等算法都可以直接在这个网站中演示 阅读全文
摘要:
(1)为什么要使用树: 因为如果使用线性表进行操作,那么搜索的时间复杂度是O(n)规模的。而如果使用树这个数据集的话,能够把时间复杂度的规模降低到O(logn)规模。 (2)为什么使用二叉查找树: 构建二叉查找树,能够限制节点的左子树中的值都比当前节点的小,右子树的都比当前节点的大。这样子更有利于进 阅读全文
摘要:
关键词:M阶、B树、分裂、合并 前言: B-树,即为B树。因为B树的原英文名称为B-tree,B-tree就是指的B树。 1、B树定义: 对于B树,我们一般描述成M(M>2)阶B树(这里的M阶指的是树的所有节点中的子树个数的最大值)。对于B树来说,它必须满足如下的性质: 性质: (1)节点的性质: 阅读全文
摘要:
关键词:MVCC、解决幻读、read_view、undo log、快照读、当前读 前言: 以下的分析均在mysql的InnoDB引擎下。 假设此时事务A与事务B同时执行。 1、定义: MVCC(Multi-Version Concurrency Control,多版本并发控制)一种并发控制机制,在数 阅读全文
摘要:
关键词:行锁、表锁、乐观锁、悲观锁、gap锁、next-key 一、行锁与表锁: 1、表锁: 锁定粒度是表 (1)意向共享锁(IS):事务如果想要读某一个数据行,那么必须取得该表的IS锁。(2)意向排他锁(IX):事务如果想要对某一个数据行进行更新操作,那么必须先取得该表的IX锁。 (3)加锁方式: 阅读全文
摘要:
关键字:修复双黑、插入修复、变色、旋转、nill、红黑 前言: 自平衡方式--旋转 1、定义:节点是黑色或者红色,且满足以下五条性质的自平衡二叉树 性质: (1)性质1:节点是红色或黑色 (2)性质2:根节点是黑色的; (3)性质3:叶子节点是黑色的; (4)性质4:红色节点的子节点是黑色的;(红色 阅读全文
摘要:
关键字:AVL、插入、删除 前言: 平衡二叉树和AVL树这两个概念的区分:平衡二叉树是对这样一种数据结构的定义,是一种描述;而AVL树则是对这样子一种数据结构的实现。同红黑树和B树等一样,都是对这样一种结构的实现,同时都是具有自平衡特性的。 AVL树是最早的被发明的自平衡二叉树。 1、定义: ①左子 阅读全文
摘要:
关键字:旋转、支点、不平衡起始点、碰撞 前言: 判断分支:不平衡起始点到插入节点所在的这条路径。分类:LL型、LR型、RR型、RL型等 不平衡起始点:从插入节点开始,沿着到根节点的路径往上找第一个平衡因子大于1的节点,这个节点就称为不平衡起始点。也是判断分支的起点 支点:指判断分支的起点,也指旋转的 阅读全文