摘要: 事务系统 事务介绍 事务:保证原子性、隔离性、一致性、持久性(ACID)的一个或多个数据库操作 只有当事务处于提交或中止的状态,一个事务的生命周期才算结束 开启一个事务,输入以下一条语句后,就可以开始写若干条该事务的语句 BEGIN; START TRANSACTION; 可加入修饰符 READ O 阅读全文
posted @ 2024-09-14 23:32 pinoky 阅读(2) 评论(0) 推荐(0) 编辑
摘要: MVCC与锁 锁基本原理 当事务想要改动记录时,会查看内存中有没有跟该记录相关联的锁结构 没有的话就生成一个is_waiting为false的锁结构与之关联,代表获取锁成功; 如果发现该记录已经有锁关联了,会生成一个is_waiting为true的锁结构,代表获取锁失败,进入等待状态; 如果加锁的事 阅读全文
posted @ 2024-09-14 23:31 pinoky 阅读(6) 评论(0) 推荐(0) 编辑
摘要: InnoDB索引与底层原理 索引介绍 索引:一颗B+树,除了叶子节点外,其余的节点都作为目录项,且都是有序排列的 在目录项page里面,一条记录对应着下层的一个page 一条记录至少有两个列:列1作为主键 记录该page最小的主键值;列2记录该page的页号 在叶子节点才真正地存放数据 聚簇索引:以 阅读全文
posted @ 2024-09-14 23:29 pinoky 阅读(4) 评论(0) 推荐(0) 编辑
摘要: master不记录哪些chunkserver拥有特定chunk副本,只在启动时轮询获得该信息,并通过定期的heartbeat消息监控所有chunkserver的状态 操作日志:包含元数据更改的历史记录,以及并发操作顺序的逻辑时间线(由此标记文件和块的版本号),只有将日志更新到本地和远程磁盘后,才能响 阅读全文
posted @ 2023-09-20 16:33 pinoky 阅读(59) 评论(4) 推荐(0) 编辑
摘要: 图论(实践篇) 图的存储 邻接矩阵: int g[i][j]=w;:从i到j有一条边权为w的边 邻接表: 不带边权:vector<vector> q vector<vector<int>> q; void my_add(int a,int b) { q[a].push_back(b); } void 阅读全文
posted @ 2022-11-22 11:34 pinoky 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 图论(理论篇) 图的概念 图:G=(V,E),由顶点集和边集组成 有向图 强连通图:任意两个顶点可以相互到达 有向树:一个顶点的入度为0,其余顶点的入度均为1 的有向图 顶点的度=入度+出度 无向图 连通图:任意两个顶点是连通的 生成树:包含图中所有顶点的一个极小连通子图 最小生成树:边权之和最小且 阅读全文
posted @ 2022-11-22 11:32 pinoky 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 树(实践篇) 二叉树 定义 struct treenode { int val; treenode* left; treenode* right; treenode(int val): val(val),left(NULL),right(NULL){ } }; 遍历 递归法 void qianxu( 阅读全文
posted @ 2022-11-22 11:32 pinoky 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 树(理论篇) ​ 设n为总结点数,n~i~为出度为i的结点数,h为树高 ​ 树的基本概念 树的度:树中结点的最大度数 结点的度:结点的孩子数量 分支数即边数 根结点处,树高h=1 n=n~0~+n~1~+n~2~+……n~i~+1 该公式可用以求n~i~,如:求叶结点数即求n~0~的大小 结合二叉树 阅读全文
posted @ 2022-11-22 11:31 pinoky 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 链表 基本概念 链表(数据结构):线性表(逻辑结构)的链式存储结构 单链表 VS 顺序表 在单链表上效率更高的操作 删除所有值为x的数 删除某个任意元素 在任意元素后插入一个数 在顺序表上效率更高的操作 在最后一个元素后面插入一个数 交换任意两个元素的值 取出某个元素的值 设置头节点的好处:方便运算 阅读全文
posted @ 2022-11-22 11:30 pinoky 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 栈和队列(理论+实践) 基本概念 栈和队列的逻辑结构是:线性表 栈 概念:限制存取点的后入先出的线性表 数学性质:n个不同的元素入栈,出栈元素的不同排列个数是1/(n+1)*C^n^~2n~:卡特兰数 存储结构 顺序栈:数组+栈顶指针 //创建 int stk[N],tt; //插入操作 stk[+ 阅读全文
posted @ 2022-11-22 11:30 pinoky 阅读(74) 评论(0) 推荐(0) 编辑