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