随笔分类 -  数据库底层相关

摘要:持续更新中,MySQL InnoDB存储引擎事务相关内容 阅读全文
posted @ 2020-04-22 14:01 名字可以起这么长 阅读(111) 评论(0) 推荐(0)
摘要:持续更新ing 关于InnoDB存储引擎锁相关的内容整理 阅读全文
posted @ 2020-04-22 13:59 名字可以起这么长 阅读(87) 评论(0) 推荐(0)
摘要:B+树索引的应用 本文主要介绍B+树索引的相关使用内容:联合索引、覆盖索引、MySQL优化器、索引提示、MRR优化、ICP优化等内容。 联合索引 联合索引是值表中多个列进行索引,其创建方式和单列索引创建方式相同。 联合索引也是一颗B+树,不同的是联合索引的键值的数量不是1,而是大于等于2。 图中可以 阅读全文
posted @ 2020-04-22 13:57 名字可以起这么长 阅读(181) 评论(0) 推荐(0)
摘要:B+树索引 B+树索引的本质就是B+树在数据库中的实现。但是B+树索引在数据库中有一个特点就是高扇出性,因此在数据库中,B+树的层高一般都在2~4层,意味着查询某一个键值的行记录最多需要2~4次IO。B+树索引分为聚集索引和辅助索引。 聚集索引 聚集索引就是根据数据表的主键构造一颗B+树,同时叶子节 阅读全文
posted @ 2020-04-21 17:41 名字可以起这么长 阅读(161) 评论(0) 推荐(0)
摘要:数据结构和算法 二分查找法 二分查找法也称为折半查找法。其基本思想是:将记录按照有序排列,在查找过程中采用跳跃式方式查找,即先以有序数列的中点进行大小对比,如果小于中心点元素,那么数据在中心点左侧,每次查询数据都将区间缩小一半,知道查询到对应数据。 二叉查找树和平衡二叉树 二叉树是一个经典的数据结构 阅读全文
posted @ 2020-04-21 15:43 名字可以起这么长 阅读(158) 评论(0) 推荐(0)
摘要:表的分区类型 RANGE分区 CREATE table t ( id int )ENGINE=INNODB PARTITION BY RANGE(id) ( PARTITION p0 VALUES LESS THAN (10), PARTITION p1 VALUES LESS THAN (20), 阅读全文
posted @ 2020-04-19 17:40 名字可以起这么长 阅读(144) 评论(0) 推荐(0)
摘要:继续上一篇我们继续学习InnoDB的表的相关知识,本章主要内容:InnoDB表约束,视图,分区表。 约束 首先我们搞清楚约束和索引的区别,用户创建了一个唯一索引,意味着用户创建了唯一约束。但是约束和索引的概念是不同的,约束更多是逻辑上的概念,用来保证数据的完整性,而索引是一个数据结构,既有逻辑上的概 阅读全文
posted @ 2020-04-19 16:56 名字可以起这么长 阅读(143) 评论(0) 推荐(0)
摘要:InnoDB存储引擎中,表都是根据主键进行顺序存放的,这种存放方式的表叫做索引组织表。 InnoDB逻辑存储结构 InnoDB从逻辑结构存储角度,从大的维度到小的维度依次为:表空间、段(segment)、区(extent)、页(page)。 表空间 InnoDB最顶层的逻辑结构,所有数据都存放在表空 阅读全文
posted @ 2020-04-16 20:47 名字可以起这么长 阅读(137) 评论(0) 推荐(0)
摘要:InnoDB的关键特性: 插入缓冲(insert buffer) 两次写(double write) 自适应哈希索引(Adaptive Hash Index) 异步IO(AIO) 刷新临接页(Flush Neighbor Page) 插入缓冲 Insert Buffer InnoDB存储引擎中,主键 阅读全文
posted @ 2020-04-16 15:56 名字可以起这么长 阅读(673) 评论(0) 推荐(0)
摘要:CheckPoint技术 数据库每次更新数据的时候都要将脏页刷新会磁盘,同时在事务提交中要先写重做日志,再修改页;在以上过程中发生宕机的,数据如何恢复,脏页刷新到哪里,为了解决这些问题,提出了checkPoint技术。 当数据库宕机的时候,数据库不需要重做左右日志,因为CheckPoint之前的页都 阅读全文
posted @ 2020-04-16 13:36 名字可以起这么长 阅读(281) 评论(0) 推荐(0)
摘要:InnoDB体系架构 这些内存块负责如下工作: 维护所有进程/线程需要访问的多个内存数据结构 缓存磁盘上的数据,方便快速读取,同时在对磁盘文件的数据修改之前在这里缓存。 重做日志缓冲(redo log) 后台线程的主要作用是负责刷新内存池中的数据,保证缓冲池中的内存缓存的是最近的数据。此外将修改的数 阅读全文
posted @ 2020-04-16 13:05 名字可以起这么长 阅读(235) 评论(0) 推荐(0)
摘要:定义数据库以及实例 数据库:物理操作系统文件或其他形式文件类型的合集。在NDB引擎时候,数据库文件可能不是操作系统上的文件,而是存放在内存之中的文件,但是定义是不变的。 实例:Mysql数据库由一个后台线程以及一个共享内存区组成。共享内存可以被运行的后台线程锁共享。数据库实例才是真正用于操作数据库文 阅读全文
posted @ 2020-04-15 14:21 名字可以起这么长 阅读(306) 评论(0) 推荐(0)