
数据库
文章平均质量分 78
深入数据库
KeDuoDuo_
来吧来吧
展开
-
数据库的锁
锁是用于管理对共享资源的并发访问,是数据库系统区别于文件系统的一个关键特性 MySQL中的锁 本文主要来谈InnoDB引擎,InnoDB引擎支持行锁、表锁粒度的锁 意向锁 为了支持多粒度锁定,InnoDB 存储引擎引入了意向锁(Intention Lock) 意向锁是表级锁 什么是意向锁呢?如果没有意向锁,当已经有人使用行锁对表中的某一行进行修改时,如果另外一个请求要对全表进行修改,那么就需要对所有的行是否被锁定进行扫描,在这种情况下,效率是非常低的;不过,在引入意向锁之后,当有人使用行锁对表中的某一行进原创 2021-02-13 22:57:17 · 376 阅读 · 1 评论 -
数据库MVCC
版本链 基于undo log 对于使用InnoDB存储引擎的表来说,它的聚簇索引记录中都包含两个必要的隐藏列: trx_id:每次对某条聚簇索引记录进行改动时,都会把对应的事务id赋值给trx_id隐藏列。 roll_pointer:每次对某条聚簇索引记录进行改动时,都会把旧的版本写入到undo日志中,然后这个隐藏列就相当于一个指针,可以通过它来找到该记录修改前的信息。 假设之后两个id分别为100、200的事务对这条记录进行UPDATE操作,操作流程如下: 每次对记录进行改动,都会记录一条undo日原创 2021-02-13 22:40:09 · 232 阅读 · 0 评论 -
数据库的索引
首先我们从B树讲起 B树 B树又称多路平衡查找树,那为什么树要长这样呢? 通常情况下,一棵树的数据量比较庞大,不能一次性全部读入内存。所以需要分批读入,可以理解为一层一层的读入,那么就要减小树的高度 一个m阶的B树具有如下几个特征: 根结点至少有两个子女 每个中间节点都包含k-1个元素和k个孩子,其中 m/2 <= k <= m 每一个叶子节点都包含k-1个元素,其中 m/2 <= k <= m 所有的叶子结点都位于同一层。 B+树 一个m阶的B+树具有如下几个特征: 有k个原创 2021-02-13 20:49:41 · 185 阅读 · 0 评论 -
数据库的架构
包括两部分 程序实例 存储管理 缓存机制 SQL解析 日志管理 权限划分 容灾机制 索引管理 锁管理 存储 文件系统原创 2021-02-13 19:58:46 · 181 阅读 · 0 评论 -
数据库基础
1数据库架构 程序实例 存储管理 缓存机制 SQL解析 日志管理 权限划分 容灾机制 索引管理 锁管理 存储 文件系统 2索引 B树 每个非叶子节点由n-1个key和n个指针组成,其中d<=n<=2d。 B+树 非叶子节点的指针域和关键字个数相同(存储更多的指针) B+树的非叶子结点只包含导航信息,不包含实际的值 每个父结点的元素都出现在子结点中,是子节点中最大/小的元素 Hash以及BitMap 哈希索引 自适应哈希 哈希(hash)一般仅需要一次查找就能定位数原创 2021-02-08 21:34:27 · 256 阅读 · 0 评论