MySQL索引基础
文章平均质量分 91
索引基础知识
析道者
To be or not to be,It's a question.
展开
-
2-3-2-5、高性能索引的创建策略
正确地创建和使用索引是实现高性能查询的基础原创 2023-02-24 21:17:56 · 873 阅读 · 0 评论 -
2-3-2-4、索引基础知识补充
InnoDB 中索引即数据,也就是聚簇索引的那棵 B+树的叶子节点中已经把所有完整的用户记录都包含了,而 MyISAM 的索引方案虽然也使用树形结构,但是却将索引和数据分开存储的。每建立一个索引都要为它建立一棵 B+树,每一棵 B+树的每一个节点都是一个数据页,一个页默认会占用 16KB 的存储空间,一棵很大的 B+树由许多数据页组成会占据很多的存储空间。如果有需要的话,也可以对其它的列分别建立索引或者建立联合索引, 原理和 InnoDB 中的索引差不多,不过在叶子节点处存储的是相应的列+行号。原创 2023-02-09 16:13:14 · 327 阅读 · 0 评论 -
2-3-2-3、索引在查询中的作用
由于二级索引记录是先按照 insert_time 列的值进行排序的,所以所有符合 insert_time < '2021-03-22 18:34:55’条件的记录肯定是相邻的,我们可以定位到第一条符合 insert_time < '2021-03-22 18:34:55’条件的记录(其实就是 u_idx_day_status 索引第一个叶子节点的第一条记录),然后沿着记录所在的链表向前扫描,直到某条记录不符合 insert_time < '2021-03-22 18:34:55’为止。原创 2023-02-07 16:29:35 · 378 阅读 · 0 评论 -
2-3-2-2、InnoDB中的索引分类
所以在 InnoDB 存储引擎内部自己去监控索引表,如果监控到某个索引经常用,那么就认为是热数据,然后内部自己创建一个 hash 索引,称之为自适应哈希索引( Adaptive Hash Index,AHI),创建以后,如果下次又查询到这个索引,那么直接通过 hash 算法推导出记录的地址,直接一次就能查到数据,比重复去B+tree 索引中查询三四次节点的效率高了不少。所以,并没有统一的索引标准:不同存储引擎的索引的工作方式并不一样,也不是所有的存储引擎都支持所有类型的索引。聚集索引的叶子节点就是数据页。原创 2023-02-06 17:20:14 · 333 阅读 · 0 评论 -
2-3-2-1、InnoDB的索引结构
叶节点具有相同的深度,叶节点的指针为空所有索引元素不重复节点中的数据索引从左到右递增排列非叶子节点不存储data,只存储索引(冗余),可以放更多的索引叶子节点包含所有索引字段叶子节点用指针连接,提高区间访问的性能。原创 2023-02-03 17:34:31 · 591 阅读 · 0 评论