摘要: 跳跃表(skipList)简介 跳跃表(skipList)是一种有序数据结构,他通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。 跳跃表支持评价O(logN)、最坏O(N)复杂度的节点查找,还可以通过顺序性操作来批量处理节点。 在大部分情况下,跳跃表的效率可以和平衡树相媲美, 阅读全文
posted @ 2020-04-24 15:12 名字可以起这么长 阅读(311) 评论(0) 推荐(0) 编辑
摘要: 链表简介 链表提供了高效的节点重排能力,以及顺序性的节点访问方式,并且可以通过增删节点来灵活地跳转链表的长度。 作为一种常用数据结构,链表内置在很多高级的编程语言里面,因为Redis使用C语言并没有内置这种数据结构,所以Redis构建了自己的链表实现。 链表在Redis中的应用非常多,比如列表键的底 阅读全文
posted @ 2020-04-24 00:09 名字可以起这么长 阅读(175) 评论(0) 推荐(0) 编辑
摘要: redis的底层数据结构有以下7种,包括简单动态字符串(SDS),链表、字典、跳跃表、整数集合、压缩列表、对象。今天我们一起看下简单动态字符串(simple dynamic string),后面的文章以SDS简称。 SDS简介 Redis没有直接使用C语言传统的字符串表示(以空字符结尾的字符串数组, 阅读全文
posted @ 2020-04-23 22:23 名字可以起这么长 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 持续更新中,MySQL InnoDB存储引擎事务相关内容 阅读全文
posted @ 2020-04-22 14:01 名字可以起这么长 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 持续更新ing 关于InnoDB存储引擎锁相关的内容整理 阅读全文
posted @ 2020-04-22 13:59 名字可以起这么长 阅读(83) 评论(0) 推荐(0) 编辑
摘要: B+树索引的应用 本文主要介绍B+树索引的相关使用内容:联合索引、覆盖索引、MySQL优化器、索引提示、MRR优化、ICP优化等内容。 联合索引 联合索引是值表中多个列进行索引,其创建方式和单列索引创建方式相同。 联合索引也是一颗B+树,不同的是联合索引的键值的数量不是1,而是大于等于2。 图中可以 阅读全文
posted @ 2020-04-22 13:57 名字可以起这么长 阅读(177) 评论(0) 推荐(0) 编辑
摘要: B+树索引 B+树索引的本质就是B+树在数据库中的实现。但是B+树索引在数据库中有一个特点就是高扇出性,因此在数据库中,B+树的层高一般都在2~4层,意味着查询某一个键值的行记录最多需要2~4次IO。B+树索引分为聚集索引和辅助索引。 聚集索引 聚集索引就是根据数据表的主键构造一颗B+树,同时叶子节 阅读全文
posted @ 2020-04-21 17:41 名字可以起这么长 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 数据结构和算法 二分查找法 二分查找法也称为折半查找法。其基本思想是:将记录按照有序排列,在查找过程中采用跳跃式方式查找,即先以有序数列的中点进行大小对比,如果小于中心点元素,那么数据在中心点左侧,每次查询数据都将区间缩小一半,知道查询到对应数据。 二叉查找树和平衡二叉树 二叉树是一个经典的数据结构 阅读全文
posted @ 2020-04-21 15:43 名字可以起这么长 阅读(148) 评论(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 名字可以起这么长 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 继续上一篇我们继续学习InnoDB的表的相关知识,本章主要内容:InnoDB表约束,视图,分区表。 约束 首先我们搞清楚约束和索引的区别,用户创建了一个唯一索引,意味着用户创建了唯一约束。但是约束和索引的概念是不同的,约束更多是逻辑上的概念,用来保证数据的完整性,而索引是一个数据结构,既有逻辑上的概 阅读全文
posted @ 2020-04-19 16:56 名字可以起这么长 阅读(136) 评论(0) 推荐(0) 编辑